All pastes #12760 Raw Edit

Someone

public text v1 · immutable
#12760 ·published 2005-05-27 06:49 UTC
rendered paste body
.text:002669FF var_40          = dword ptr -40h
.text:002669FF arg_0           = dword ptr  8
.text:002669FF arg_4           = dword ptr  0Ch
.text:002669FF arg_8           = dword ptr  10h
.text:002669FF
.text:002669FF                 push    ebp
.text:00266A00                 mov     ebp, esp
.text:00266A02                 sub     esp, 40h
.text:00266A05                 cmp     [ebp+arg_4], 40h
.text:00266A09                 jbe     short loc_266A12
.text:00266A0B                 mov     [ebp+arg_4], 40h
.text:00266A12
.text:00266A12 loc_266A12:                             ; CODE XREF: XShaHmacInitialize(x,x,x)+Aj
.text:00266A12                 push    esi
.text:00266A13                 mov     esi, [ebp+arg_0]
.text:00266A16                 push    edi
.text:00266A17                 push    10h
.text:00266A19                 pop     ecx
.text:00266A1A                 xor     eax, eax
.text:00266A1C                 lea     edi, [ebp+var_40]
.text:00266A1F                 rep stosd
.text:00266A21                 mov     ecx, [ebp+arg_4]
.text:00266A24                 mov     eax, ecx
.text:00266A26                 shr     ecx, 2
.text:00266A29                 lea     edi, [ebp+var_40]
.text:00266A2C                 rep movsd
.text:00266A2E                 mov     ecx, eax
.text:00266A30                 and     ecx, 3
.text:00266A33                 rep movsb
.text:00266A35                 pop     edi
.text:00266A36                 xor     eax, eax
.text:00266A38                 pop     esi
.text:00266A39
.text:00266A39 loc_266A39:                             ; CODE XREF: XShaHmacInitialize(x,x,x)+46j
.text:00266A39                 xor     [ebp+eax*4+var_40], 36363636h
.text:00266A41                 inc     eax
.text:00266A42                 cmp     eax, 10h
.text:00266A45                 jb      short loc_266A39
.text:00266A47                 push    [ebp+arg_8]
.text:00266A4A                 call    sub_26F958
.text:00266A4F                 push    40h
.text:00266A51                 lea     eax, [ebp+var_40]
.text:00266A54                 push    eax
.text:00266A55                 push    [ebp+arg_8]
.text:00266A58                 call    sub_26F952
.text:00266A5D                 leave
.text:00266A5E                 retn    0Ch
.text:00266A5E _XShaHmacInitialize@12 endp
.text:00266A5E
.text:00266A61
.text:00266A61 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266A61
.text:00266A61 ; Attributes: thunk
.text:00266A61
.text:00266A61 sub_266A61      proc near               ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+50p
.text:00266A61                                         ; XapiComputeContentHeaderSignature(x,x,x,x)+ACp ...
.text:00266A61                 jmp     sub_26F952
.text:00266A61 sub_266A61      endp
.text:00266A61
.text:00266A66
.text:00266A66 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266A66
.text:00266A66 ; Attributes: library function bp-based frame
.text:00266A66
.text:00266A66 ; __stdcall XShaHmacComputeFinal(x,x,x,x)
.text:00266A66 _XShaHmacComputeFinal@16 proc near      ; CODE XREF: sub_266AD8+67p
.text:00266A66                                         ; XCalculateSignatureEnd(x,x)+2Bp ...
.text:00266A66
.text:00266A66 var_54          = dword ptr -54h
.text:00266A66 var_14          = dword ptr -14h
.text:00266A66 arg_0           = dword ptr  8
.text:00266A66 arg_4           = dword ptr  0Ch
.text:00266A66 arg_8           = dword ptr  10h
.text:00266A66 arg_C           = dword ptr  14h
.text:00266A66
.text:00266A66                 push    ebp
.text:00266A67                 mov     ebp, esp
.text:00266A69                 sub     esp, 54h
.text:00266A6C                 push    40h
.text:00266A6E                 pop     eax
.text:00266A6F                 cmp     [ebp+arg_8], eax
.text:00266A72                 jbe     short loc_266A77
.text:00266A74                 mov     [ebp+arg_8], eax
.text:00266A77
.text:00266A77 loc_266A77:                             ; CODE XREF: XShaHmacComputeFinal(x,x,x,x)+Cj
.text:00266A77                 push    esi
.text:00266A78                 mov     esi, [ebp+arg_4]
.text:00266A7B                 push    edi
.text:00266A7C                 push    10h
.text:00266A7E                 xor     eax, eax
.text:00266A80                 pop     ecx
.text:00266A81                 lea     edi, [ebp+var_54]
.text:00266A84                 rep stosd
.text:00266A86                 mov     ecx, [ebp+arg_8]
.text:00266A89                 mov     eax, ecx
.text:00266A8B                 shr     ecx, 2
.text:00266A8E                 lea     edi, [ebp+var_54]
.text:00266A91                 rep movsd
.text:00266A93                 mov     ecx, eax
.text:00266A95                 and     ecx, 3
.text:00266A98                 rep movsb
.text:00266A9A                 xor     eax, eax
.text:00266A9C
.text:00266A9C loc_266A9C:                             ; CODE XREF: XShaHmacComputeFinal(x,x,x,x)+42j
.text:00266A9C                 xor     [ebp+eax*4+var_54], 5C5C5C5Ch
.text:00266AA4                 inc     eax
.text:00266AA5                 cmp     eax, 10h
.text:00266AA8                 jb      short loc_266A9C
.text:00266AAA                 mov     esi, [ebp+arg_0]
.text:00266AAD                 lea     eax, [ebp+var_14]
.text:00266AB0                 push    eax
.text:00266AB1                 push    esi
.text:00266AB2                 call    sub_26F95E
.text:00266AB7                 push    esi
.text:00266AB8                 call    sub_26F958
.text:00266ABD                 push    54h
.text:00266ABF                 lea     eax, [ebp+var_54]
.text:00266AC2                 push    eax
.text:00266AC3                 push    esi
.text:00266AC4                 call    sub_26F952
.text:00266AC9                 push    [ebp+arg_C]
.text:00266ACC                 push    esi
.text:00266ACD                 call    sub_26F95E
.text:00266AD2                 pop     edi
.text:00266AD3                 pop     esi
.text:00266AD4                 leave
.text:00266AD5                 retn    10h
.text:00266AD5 _XShaHmacComputeFinal@16 endp
.text:00266AD5
.text:00266AD8
.text:00266AD8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266AD8
.text:00266AD8 ; Attributes: bp-based frame
.text:00266AD8
.text:00266AD8 sub_266AD8      proc near               ; CODE XREF: XCalculateSignatureEnd(x,x)+3Cp
.text:00266AD8
.text:00266AD8 var_108         = dword ptr -108h
.text:00266AD8 var_D2          = dword ptr -0D2h
.text:00266AD8 var_8           = dword ptr -8
.text:00266AD8 var_4           = dword ptr -4
.text:00266AD8 arg_0           = dword ptr  8
.text:00266AD8 arg_4           = dword ptr  0Ch
.text:00266AD8 arg_8           = dword ptr  10h
.text:00266AD8
.text:00266AD8                 push    ebp
.text:00266AD9                 mov     ebp, esp
.text:00266ADB                 sub     esp, 108h
.text:00266AE1                 push    esi
.text:00266AE2                 mov     esi, ds:dword_485E5C
.text:00266AE8                 xor     al, al
.text:00266AEA                 push    edi
.text:00266AEB                 xor     ecx, ecx
.text:00266AED
.text:00266AED loc_266AED:                             ; CODE XREF: sub_266AD8+1Cj
.text:00266AED                 or      al, [ecx+esi]
.text:00266AF0                 inc     ecx
.text:00266AF1                 cmp     ecx, 10h
.text:00266AF4                 jl      short loc_266AED
.text:00266AF6                 test    al, al
.text:00266AF8                 jnz     short loc_266B1E
.text:00266AFA                 lea     eax, [ebp+var_8]
.text:00266AFD                 push    eax
.text:00266AFE                 push    100h
.text:00266B03                 lea     eax, [ebp+var_108]
.text:00266B09                 push    eax
.text:00266B0A                 lea     eax, [ebp+var_4]
.text:00266B0D                 push    eax
.text:00266B0E                 push    0FFFFh
.text:00266B13                 call    _XQueryValue@20 ; XQueryValue(x,x,x,x,x)
.text:00266B18                 lea     esi, [ebp+var_D2]
.text:00266B1E
.text:00266B1E loc_266B1E:                             ; CODE XREF: sub_266AD8+20j
.text:00266B1E                 mov     edi, [ebp+arg_0]
.text:00266B21                 add     edi, 8
.text:00266B24                 push    edi
.text:00266B25                 push    10h
.text:00266B27                 push    esi
.text:00266B28                 call    _XShaHmacInitialize@12 ; XShaHmacInitialize(x,x,x)
.text:00266B2D                 push    14h
.text:00266B2F                 push    [ebp+arg_4]
.text:00266B32                 push    edi
.text:00266B33                 call    sub_26F952
.text:00266B38                 push    [ebp+arg_8]
.text:00266B3B                 push    10h
.text:00266B3D                 push    esi
.text:00266B3E                 push    edi
.text:00266B3F                 call    _XShaHmacComputeFinal@16 ; XShaHmacComputeFinal(x,x,x,x)
.text:00266B44                 xor     eax, eax
.text:00266B46                 pop     edi
.text:00266B47                 inc     eax
.text:00266B48                 pop     esi
.text:00266B49                 leave
.text:00266B4A                 retn    0Ch
.text:00266B4A sub_266AD8      endp
.text:00266B4A
.text:00266B4D
.text:00266B4D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266B4D
.text:00266B4D
.text:00266B4D sub_266B4D      proc near               ; CODE XREF: sub_266CCA+2Dp
.text:00266B4D
.text:00266B4D arg_0           = dword ptr  0Ch
.text:00266B4D arg_4           = dword ptr  10h
.text:00266B4D
.text:00266B4D                 push    ebx
.text:00266B4E                 push    esi
.text:00266B4F                 mov     esi, ds:10118h
.text:00266B55                 push    edi
.text:00266B56                 push    24830000h
.text:00266B5B                 push    7Ch
.text:00266B5D                 call    sub_64B60
.text:00266B62                 mov     edi, eax
.text:00266B64                 test    edi, edi
.text:00266B66                 jnz     short loc_266B6C
.text:00266B68                 push    8
.text:00266B6A                 jmp     short loc_266B9A
.text:00266B6C ; ---------------------------------------------------------------------------
.text:00266B6C
.text:00266B6C loc_266B6C:                             ; CODE XREF: sub_266B4D+19j
.text:00266B6C                 mov     eax, [esp+4+arg_0]
.text:00266B70                 mov     ebx, [esp+4+arg_4]
.text:00266B74                 mov     [edi], eax
.text:00266B76                 cmp     [esi+8], ebx
.text:00266B79                 jz      short loc_266BAF
.text:00266B7B                 xor     eax, eax
.text:00266B7D                 lea     ecx, [esi+5Ch]
.text:00266B80
.text:00266B80 loc_266B80:                             ; CODE XREF: sub_266B4D+44j
.text:00266B80                 mov     edx, [ecx]
.text:00266B82                 test    edx, edx
.text:00266B84                 jz      short loc_266B98
.text:00266B86                 cmp     ebx, edx
.text:00266B88                 jz      short loc_266B93
.text:00266B8A                 inc     eax
.text:00266B8B                 add     ecx, 4
.text:00266B8E                 cmp     eax, 10h
.text:00266B91                 jb      short loc_266B80
.text:00266B93
.text:00266B93 loc_266B93:                             ; CODE XREF: sub_266B4D+3Bj
.text:00266B93                 cmp     eax, 40h
.text:00266B96                 jb      short loc_266BA4
.text:00266B98
.text:00266B98 loc_266B98:                             ; CODE XREF: sub_266B4D+37j
.text:00266B98                 push    5               ; dwErrCode
.text:00266B9A
.text:00266B9A loc_266B9A:                             ; CODE XREF: sub_266B4D+1Dj
.text:00266B9A                 call    _SetLastError@4 ; SetLastError(x)
.text:00266B9F                 or      eax, 0FFFFFFFFh
.text:00266BA2                 jmp     short loc_266BC7
.text:00266BA4 ; ---------------------------------------------------------------------------
.text:00266BA4
.text:00266BA4 loc_266BA4:                             ; CODE XREF: sub_266B4D+49j
.text:00266BA4                 shl     eax, 4
.text:00266BA7                 add     eax, ds:dword_485E64
.text:00266BAD                 jmp     short loc_266BB4
.text:00266BAF ; ---------------------------------------------------------------------------
.text:00266BAF
.text:00266BAF loc_266BAF:                             ; CODE XREF: sub_266B4D+2Cj
.text:00266BAF                 mov     eax, ds:dword_485E60
.text:00266BB4
.text:00266BB4 loc_266BB4:                             ; CODE XREF: sub_266B4D+60j
.text:00266BB4                 mov     [edi+4], eax
.text:00266BB7                 lea     eax, [edi+8]
.text:00266BBA                 push    eax
.text:00266BBB                 push    10h
.text:00266BBD                 push    dword ptr [edi+4]
.text:00266BC0                 call    _XShaHmacInitialize@12 ; XShaHmacInitialize(x,x,x)
.text:00266BC5                 mov     eax, edi
.text:00266BC7
.text:00266BC7 loc_266BC7:                             ; CODE XREF: sub_266B4D+55j
.text:00266BC7                 pop     edi
.text:00266BC8                 pop     esi
.text:00266BC9                 pop     ebx
.text:00266BCA                 retn    8
.text:00266BCA sub_266B4D      endp
.text:00266BCA
.text:00266BCD
.text:00266BCD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266BCD
.text:00266BCD ; Attributes: library function bp-based frame
.text:00266BCD
.text:00266BCD ; __stdcall XCalculateSignatureEnd(x,x)
.text:00266BCD _XCalculateSignatureEnd@8 proc near     ; CODE XREF: sub_266D6D+38p
.text:00266BCD
.text:00266BCD var_14          = dword ptr -14h
.text:00266BCD arg_0           = dword ptr  8
.text:00266BCD arg_4           = dword ptr  0Ch
.text:00266BCD
.text:00266BCD                 push    ebp
.text:00266BCE                 mov     ebp, esp
.text:00266BD0                 sub     esp, 14h
.text:00266BD3                 mov     eax, [ebp+arg_4]
.text:00266BD6                 push    ebx
.text:00266BD7                 push    esi
.text:00266BD8                 push    edi
.text:00266BD9                 mov     edi, [ebp+arg_0]
.text:00266BDC                 mov     esi, [edi]
.text:00266BDE                 xor     ebx, ebx
.text:00266BE0                 inc     ebx
.text:00266BE1                 and     esi, ebx
.text:00266BE3                 test    eax, eax
.text:00266BE5                 jz      short loc_266C10
.text:00266BE7                 test    esi, esi
.text:00266BE9                 jz      short loc_266BEE
.text:00266BEB                 lea     eax, [ebp+var_14]
.text:00266BEE
.text:00266BEE loc_266BEE:                             ; CODE XREF: XCalculateSignatureEnd(x,x)+1Cj
.text:00266BEE                 push    eax
.text:00266BEF                 push    10h
.text:00266BF1                 push    dword ptr [edi+4]
.text:00266BF4                 lea     eax, [edi+8]
.text:00266BF7                 push    eax
.text:00266BF8                 call    _XShaHmacComputeFinal@16 ; XShaHmacComputeFinal(x,x,x,x)
.text:00266BFD                 test    esi, esi
.text:00266BFF                 jz      short loc_266C10
.text:00266C01                 push    [ebp+arg_4]
.text:00266C04                 lea     eax, [ebp+var_14]
.text:00266C07                 push    eax
.text:00266C08                 push    edi
.text:00266C09                 call    sub_266AD8
.text:00266C0E                 mov     ebx, eax
.text:00266C10
.text:00266C10 loc_266C10:                             ; CODE XREF: XCalculateSignatureEnd(x,x)+18j
.text:00266C10                                         ; XCalculateSignatureEnd(x,x)+32j
.text:00266C10                 push    24830000h
.text:00266C15                 push    edi
.text:00266C16                 call    sub_645B0
.text:00266C1B                 pop     edi
.text:00266C1C                 pop     esi
.text:00266C1D                 test    ebx, ebx
.text:00266C1F                 pop     ebx
.text:00266C20                 jz      short loc_266C26
.text:00266C22                 xor     eax, eax
.text:00266C24                 jmp     short locret_266C2B
.text:00266C26 ; ---------------------------------------------------------------------------
.text:00266C26
.text:00266C26 loc_266C26:                             ; CODE XREF: XCalculateSignatureEnd(x,x)+53j
.text:00266C26                 call    _GetLastError@0 ; GetLastError()
.text:00266C2B
.text:00266C2B locret_266C2B:                          ; CODE XREF: XCalculateSignatureEnd(x,x)+57j
.text:00266C2B                 leave
.text:00266C2C                 retn    8
.text:00266C2C _XCalculateSignatureEnd@8 endp
.text:00266C2C
.text:00266C2F
.text:00266C2F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266C2F
.text:00266C2F
.text:00266C2F sub_266C2F      proc near               ; CODE XREF: sub_266CCA:loc_266CEBp
.text:00266C2F                 push    esi
.text:00266C30                 push    24830000h
.text:00266C35                 push    7Ch
.text:00266C37                 call    sub_64B60
.text:00266C3C                 mov     esi, eax
.text:00266C3E                 test    esi, esi
.text:00266C40                 jnz     short loc_266C4E
.text:00266C42                 push    8               ; dwErrCode
.text:00266C44                 call    _SetLastError@4 ; SetLastError(x)
.text:00266C49                 or      eax, 0FFFFFFFFh
.text:00266C4C                 pop     esi
.text:00266C4D                 retn
.text:00266C4E ; ---------------------------------------------------------------------------
.text:00266C4E
.text:00266C4E loc_266C4E:                             ; CODE XREF: sub_266C2F+11j
.text:00266C4E                 and     dword ptr [esi+4], 0
.text:00266C52                 lea     eax, [esi+8]
.text:00266C55                 push    eax
.text:00266C56                 mov     dword ptr [esi], 2
.text:00266C5C                 call    sub_26F958
.text:00266C61                 mov     eax, esi
.text:00266C63                 pop     esi
.text:00266C64                 retn
.text:00266C64 sub_266C2F      endp ; sp = -4
.text:00266C64
.text:00266C65
.text:00266C65 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266C65
.text:00266C65 ; Attributes: library function
.text:00266C65
.text:00266C65 ; __stdcall XCalculateSignatureUpdate(x,x,x)
.text:00266C65 _XCalculateSignatureUpdate@12 proc near ; CODE XREF: sub_266D1F+32p
.text:00266C65                                         ; sub_266D1F+40p
.text:00266C65
.text:00266C65 arg_0           = dword ptr  4
.text:00266C65 arg_4           = dword ptr  8
.text:00266C65 arg_8           = dword ptr  0Ch
.text:00266C65
.text:00266C65                 push    [esp+arg_8]
.text:00266C69                 mov     eax, [esp+4+arg_0]
.text:00266C6D                 push    [esp+4+arg_4]
.text:00266C71                 add     eax, 8
.text:00266C74                 push    eax
.text:00266C75                 call    sub_26F952
.text:00266C7A                 xor     eax, eax
.text:00266C7C                 retn    0Ch
.text:00266C7C _XCalculateSignatureUpdate@12 endp ; sp = -0Ch
.text:00266C7C
.text:00266C7F
.text:00266C7F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266C7F
.text:00266C7F
.text:00266C7F sub_266C7F      proc near               ; CODE XREF: sub_266D6D+2Cp
.text:00266C7F
.text:00266C7F arg_0           = dword ptr  4
.text:00266C7F arg_4           = dword ptr  8
.text:00266C7F
.text:00266C7F                 cmp     [esp+arg_4], 0
.text:00266C84                 push    esi
.text:00266C85                 mov     esi, [esp+4+arg_0]
.text:00266C89                 jz      short loc_266C98
.text:00266C8B                 push    [esp+4+arg_4]
.text:00266C8F                 lea     eax, [esi+8]
.text:00266C92                 push    eax
.text:00266C93                 call    sub_26F95E
.text:00266C98
.text:00266C98 loc_266C98:                             ; CODE XREF: sub_266C7F+Aj
.text:00266C98                 push    24830000h
.text:00266C9D                 push    esi
.text:00266C9E                 call    sub_645B0
.text:00266CA3                 xor     eax, eax
.text:00266CA5                 pop     esi
.text:00266CA6                 retn    8
.text:00266CA6 sub_266C7F      endp ; sp = -8
.text:00266CA6
.text:00266CA9
.text:00266CA9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266CA9
.text:00266CA9
.text:00266CA9 sub_266CA9      proc near               ; CODE XREF: .text:000536D2p
.text:00266CA9                                         ; .text:000A5912p ...
.text:00266CA9
.text:00266CA9 arg_0           = dword ptr  4
.text:00266CA9
.text:00266CA9                 mov     eax, [esp+arg_0]
.text:00266CAD                 cmp     eax, 2
.text:00266CB0                 jbe     short loc_266CC1
.text:00266CB2                 cmp     eax, 4
.text:00266CB5                 jz      short loc_266CC1
.text:00266CB7                 cmp     eax, 8
.text:00266CBA                 jnz     short loc_266CC5
.text:00266CBC                 push    64h
.text:00266CBE
.text:00266CBE loc_266CBE:                             ; CODE XREF: sub_266CA9+1Aj
.text:00266CBE                 pop     eax
.text:00266CBF                 jmp     short locret_266CC7
.text:00266CC1 ; ---------------------------------------------------------------------------
.text:00266CC1
.text:00266CC1 loc_266CC1:                             ; CODE XREF: sub_266CA9+7j
.text:00266CC1                                         ; sub_266CA9+Cj
.text:00266CC1                 push    14h
.text:00266CC3                 jmp     short loc_266CBE
.text:00266CC5 ; ---------------------------------------------------------------------------
.text:00266CC5
.text:00266CC5 loc_266CC5:                             ; CODE XREF: sub_266CA9+11j
.text:00266CC5                 xor     eax, eax
.text:00266CC7
.text:00266CC7 locret_266CC7:                          ; CODE XREF: sub_266CA9+16j
.text:00266CC7                 retn    4
.text:00266CC7 sub_266CA9      endp
.text:00266CC7
.text:00266CCA
.text:00266CCA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266CCA
.text:00266CCA
.text:00266CCA sub_266CCA      proc near               ; CODE XREF: XCalculateSignatureBegin(x)+Cp
.text:00266CCA
.text:00266CCA arg_0           = dword ptr  4
.text:00266CCA arg_4           = dword ptr  8
.text:00266CCA
.text:00266CCA                 mov     eax, [esp+arg_0]
.text:00266CCE                 cmp     eax, 1
.text:00266CD1                 jbe     short loc_266CF2
.text:00266CD3                 cmp     eax, 2
.text:00266CD6                 jz      short loc_266CEB
.text:00266CD8                 cmp     eax, 4
.text:00266CDB                 jz      short loc_266CEB
.text:00266CDD                 cmp     eax, 8
.text:00266CE0                 jnz     short loc_266CFE
.text:00266CE2                 push    eax
.text:00266CE3                 call    dword_5E1C08
.text:00266CE9                 jmp     short locret_266D08
.text:00266CEB ; ---------------------------------------------------------------------------
.text:00266CEB
.text:00266CEB loc_266CEB:                             ; CODE XREF: sub_266CCA+Cj
.text:00266CEB                                         ; sub_266CCA+11j
.text:00266CEB                 call    sub_266C2F
.text:00266CF0                 jmp     short locret_266D08
.text:00266CF2 ; ---------------------------------------------------------------------------
.text:00266CF2
.text:00266CF2 loc_266CF2:                             ; CODE XREF: sub_266CCA+7j
.text:00266CF2                 push    [esp+arg_4]
.text:00266CF6                 push    eax
.text:00266CF7                 call    sub_266B4D
.text:00266CFC                 jmp     short locret_266D08
.text:00266CFE ; ---------------------------------------------------------------------------
.text:00266CFE
.text:00266CFE loc_266CFE:                             ; CODE XREF: sub_266CCA+16j
.text:00266CFE                 push    32h             ; dwErrCode
.text:00266D00                 call    _SetLastError@4 ; SetLastError(x)
.text:00266D05                 or      eax, 0FFFFFFFFh
.text:00266D08
.text:00266D08 locret_266D08:                          ; CODE XREF: sub_266CCA+1Fj
.text:00266D08                                         ; sub_266CCA+26j ...
.text:00266D08                 retn    8
.text:00266D08 sub_266CCA      endp
.text:00266D08
.text:00266D0B ; [00000014 BYTES: COLLAPSED FUNCTION XCalculateSignatureBegin(x). PRESS KEYPAD "+" TO EXPAND]
.text:00266D1F
.text:00266D1F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266D1F
.text:00266D1F ; Attributes: bp-based frame
.text:00266D1F
.text:00266D1F sub_266D1F      proc near               ; CODE XREF: .text:00054B53p
.text:00266D1F                                         ; .text:000A5D83p ...
.text:00266D1F
.text:00266D1F arg_0           = dword ptr  8
.text:00266D1F arg_4           = dword ptr  0Ch
.text:00266D1F arg_8           = dword ptr  10h
.text:00266D1F
.text:00266D1F                 push    ebp
.text:00266D20                 mov     ebp, esp
.text:00266D22                 mov     ecx, [ebp+arg_0]
.text:00266D25                 mov     eax, [ecx]
.text:00266D27                 cmp     eax, 1
.text:00266D2A                 jbe     short loc_266D58
.text:00266D2C                 cmp     eax, 2
.text:00266D2F                 jz      short loc_266D4A
.text:00266D31                 cmp     eax, 4
.text:00266D34                 jz      short loc_266D4A
.text:00266D36                 cmp     eax, 8
.text:00266D39                 jnz     short loc_266D66
.text:00266D3B                 push    [ebp+arg_8]
.text:00266D3E                 push    [ebp+arg_4]
.text:00266D41                 push    ecx
.text:00266D42                 call    dword_5E1C0C
.text:00266D48                 jmp     short loc_266D69
.text:00266D4A ; ---------------------------------------------------------------------------
.text:00266D4A
.text:00266D4A loc_266D4A:                             ; CODE XREF: sub_266D1F+10j
.text:00266D4A                                         ; sub_266D1F+15j
.text:00266D4A                 push    [ebp+arg_8]
.text:00266D4D                 push    [ebp+arg_4]
.text:00266D50                 push    ecx
.text:00266D51                 call    _XCalculateSignatureUpdate@12 ; XCalculateSignatureUpdate(x,x,x)
.text:00266D56                 jmp     short loc_266D69
.text:00266D58 ; ---------------------------------------------------------------------------
.text:00266D58
.text:00266D58 loc_266D58:                             ; CODE XREF: sub_266D1F+Bj
.text:00266D58                 push    [ebp+arg_8]
.text:00266D5B                 push    [ebp+arg_4]
.text:00266D5E                 push    ecx
.text:00266D5F                 call    _XCalculateSignatureUpdate@12 ; XCalculateSignatureUpdate(x,x,x)
.text:00266D64                 jmp     short loc_266D69
.text:00266D66 ; ---------------------------------------------------------------------------
.text:00266D66
.text:00266D66 loc_266D66:                             ; CODE XREF: sub_266D1F+1Aj
.text:00266D66                 push    32h
.text:00266D68                 pop     eax
.text:00266D69
.text:00266D69 loc_266D69:                             ; CODE XREF: sub_266D1F+29j
.text:00266D69                                         ; sub_266D1F+37j ...
.text:00266D69                 pop     ebp
.text:00266D6A                 retn    0Ch
.text:00266D6A sub_266D1F      endp
.text:00266D6A
.text:00266D6D
.text:00266D6D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266D6D
.text:00266D6D
.text:00266D6D sub_266D6D      proc near               ; CODE XREF: sub_536E0+18p
.text:00266D6D                                         ; sub_536E0+41p ...
.text:00266D6D
.text:00266D6D arg_0           = dword ptr  4
.text:00266D6D arg_4           = dword ptr  8
.text:00266D6D
.text:00266D6D                 mov     ecx, [esp+arg_0]
.text:00266D71                 mov     eax, [ecx]
.text:00266D73                 cmp     eax, 1
.text:00266D76                 jbe     short loc_266DA0
.text:00266D78                 cmp     eax, 2
.text:00266D7B                 jz      short loc_266D94
.text:00266D7D                 cmp     eax, 4
.text:00266D80                 jz      short loc_266D94
.text:00266D82                 cmp     eax, 8
.text:00266D85                 jnz     short loc_266DAC
.text:00266D87                 push    [esp+arg_4]
.text:00266D8B                 push    ecx
.text:00266D8C                 call    dword_5E1C10
.text:00266D92                 jmp     short locret_266DAF
.text:00266D94 ; ---------------------------------------------------------------------------
.text:00266D94
.text:00266D94 loc_266D94:                             ; CODE XREF: sub_266D6D+Ej
.text:00266D94                                         ; sub_266D6D+13j
.text:00266D94                 push    [esp+arg_4]
.text:00266D98                 push    ecx
.text:00266D99                 call    sub_266C7F
.text:00266D9E                 jmp     short locret_266DAF
.text:00266DA0 ; ---------------------------------------------------------------------------
.text:00266DA0
.text:00266DA0 loc_266DA0:                             ; CODE XREF: sub_266D6D+9j
.text:00266DA0                 push    [esp+arg_4]
.text:00266DA4                 push    ecx
.text:00266DA5                 call    _XCalculateSignatureEnd@8 ; XCalculateSignatureEnd(x,x)
.text:00266DAA                 jmp     short locret_266DAF
.text:00266DAC ; ---------------------------------------------------------------------------
.text:00266DAC
.text:00266DAC loc_266DAC:                             ; CODE XREF: sub_266D6D+18j
.text:00266DAC                 push    32h
.text:00266DAE                 pop     eax
.text:00266DAF
.text:00266DAF locret_266DAF:                          ; CODE XREF: sub_266D6D+25j
.text:00266DAF                                         ; sub_266D6D+31j ...
.text:00266DAF                 retn    8
.text:00266DAF sub_266D6D      endp
.text:00266DAF
.text:00266DB2 ; [0000002E BYTES: COLLAPSED FUNCTION VirtualAlloc(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00266DE0 ; [0000003C BYTES: COLLAPSED FUNCTION VirtualFree(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00266E1C ; [00000022 BYTES: COLLAPSED FUNCTION VirtualQuery(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00266E3E ; [00000014 BYTES: COLLAPSED FUNCTION VirtualQueryEx(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00266E52 ; [0000004F BYTES: COLLAPSED FUNCTION GlobalMemoryStatus(x). PRESS KEYPAD "+" TO EXPAND]
.text:00266EA1
.text:00266EA1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266EA1
.text:00266EA1 ; Attributes: bp-based frame
.text:00266EA1
.text:00266EA1 sub_266EA1      proc near               ; CODE XREF: sub_5BD30j
.text:00266EA1                                         ; XapiReadFromStDb(x,x,x)+18p ...
.text:00266EA1
.text:00266EA1 var_10          = dword ptr -10h
.text:00266EA1 var_C           = dword ptr -0Ch
.text:00266EA1 var_8           = dword ptr -8
.text:00266EA1 var_4           = dword ptr -4
.text:00266EA1 arg_0           = dword ptr  8
.text:00266EA1 arg_4           = dword ptr  0Ch
.text:00266EA1 arg_8           = dword ptr  10h
.text:00266EA1 arg_C           = dword ptr  14h
.text:00266EA1 arg_10          = dword ptr  18h
.text:00266EA1
.text:00266EA1                 push    ebp
.text:00266EA2                 mov     ebp, esp
.text:00266EA4                 sub     esp, 10h
.text:00266EA7                 push    ebx
.text:00266EA8                 push    esi
.text:00266EA9                 push    edi
.text:00266EAA                 mov     edi, [ebp+arg_C]
.text:00266EAD                 xor     ebx, ebx
.text:00266EAF                 cmp     edi, ebx
.text:00266EB1                 jz      short loc_266EB5
.text:00266EB3                 mov     [edi], ebx
.text:00266EB5
.text:00266EB5 loc_266EB5:                             ; CODE XREF: sub_266EA1+10j
.text:00266EB5                 mov     esi, [ebp+arg_10]
.text:00266EB8                 cmp     esi, ebx
.text:00266EBA                 jz      short loc_266F24
.text:00266EBC                 mov     eax, [esi+8]
.text:00266EBF                 mov     [ebp+var_10], eax
.text:00266EC2                 mov     eax, [esi+0Ch]
.text:00266EC5                 mov     [ebp+var_C], eax
.text:00266EC8                 mov     eax, [esi+10h]
.text:00266ECB                 lea     ecx, [ebp+var_10]
.text:00266ECE                 push    ecx
.text:00266ECF                 push    [ebp+arg_8]
.text:00266ED2                 mov     ecx, eax
.text:00266ED4                 push    [ebp+arg_4]
.text:00266ED7                 and     cl, 1
.text:00266EDA                 neg     cl
.text:00266EDC                 push    esi
.text:00266EDD                 mov     edi, 103h
.text:00266EE2                 mov     [esi], edi
.text:00266EE4                 sbb     ecx, ecx
.text:00266EE6                 not     ecx
.text:00266EE8                 and     ecx, esi
.text:00266EEA                 push    ecx
.text:00266EEB                 push    ebx
.text:00266EEC                 push    eax
.text:00266EED                 push    [ebp+arg_0]
.text:00266EF0                 call    ds:dword_485DFC
.text:00266EF6                 cmp     eax, ebx
.text:00266EF8                 jl      short loc_266F0F
.text:00266EFA                 cmp     eax, edi
.text:00266EFC                 jz      short loc_266F0F
.text:00266EFE                 mov     eax, [ebp+arg_C]
.text:00266F01                 cmp     eax, ebx
.text:00266F03                 jz      short loc_266F0A
.text:00266F05                 mov     ecx, [esi+4]
.text:00266F08                 mov     [eax], ecx
.text:00266F0A
.text:00266F0A loc_266F0A:                             ; CODE XREF: sub_266EA1+62j
.text:00266F0A                                         ; sub_266EA1+BCj ...
.text:00266F0A                 xor     eax, eax
.text:00266F0C                 inc     eax
.text:00266F0D                 jmp     short loc_266F87
.text:00266F0F ; ---------------------------------------------------------------------------
.text:00266F0F
.text:00266F0F loc_266F0F:                             ; CODE XREF: sub_266EA1+57j
.text:00266F0F                                         ; sub_266EA1+5Bj
.text:00266F0F                 mov     ecx, 0C0000011h
.text:00266F14                 cmp     eax, ecx
.text:00266F16                 jnz     short loc_266F7F
.text:00266F18                 mov     eax, [ebp+arg_C]
.text:00266F1B                 cmp     eax, ebx
.text:00266F1D                 jz      short loc_266F21
.text:00266F1F                 mov     [eax], ebx
.text:00266F21
.text:00266F21 loc_266F21:                             ; CODE XREF: sub_266EA1+7Cj
.text:00266F21                 push    ecx
.text:00266F22                 jmp     short loc_266F80
.text:00266F24 ; ---------------------------------------------------------------------------
.text:00266F24
.text:00266F24 loc_266F24:                             ; CODE XREF: sub_266EA1+19j
.text:00266F24                 push    ebx
.text:00266F25                 push    [ebp+arg_8]
.text:00266F28                 lea     eax, [ebp+var_8]
.text:00266F2B                 push    [ebp+arg_4]
.text:00266F2E                 push    eax
.text:00266F2F                 push    ebx
.text:00266F30                 push    ebx
.text:00266F31                 push    ebx
.text:00266F32                 push    [ebp+arg_0]
.text:00266F35                 call    ds:dword_485DFC
.text:00266F3B                 cmp     eax, 103h
.text:00266F40                 jnz     short loc_266F54
.text:00266F42                 push    ebx
.text:00266F43                 push    ebx
.text:00266F44                 push    [ebp+arg_0]
.text:00266F47                 call    ds:dword_485E80
.text:00266F4D                 cmp     eax, ebx
.text:00266F4F                 jl      short loc_266F5F
.text:00266F51                 mov     eax, [ebp+var_8]
.text:00266F54
.text:00266F54 loc_266F54:                             ; CODE XREF: sub_266EA1+9Fj
.text:00266F54                 cmp     eax, ebx
.text:00266F56                 jl      short loc_266F5F
.text:00266F58                 mov     eax, [ebp+var_4]
.text:00266F5B                 mov     [edi], eax
.text:00266F5D                 jmp     short loc_266F0A
.text:00266F5F ; ---------------------------------------------------------------------------
.text:00266F5F
.text:00266F5F loc_266F5F:                             ; CODE XREF: sub_266EA1+AEj
.text:00266F5F                                         ; sub_266EA1+B5j
.text:00266F5F                 cmp     eax, 0C0000011h
.text:00266F64                 jnz     short loc_266F6A
.text:00266F66                 mov     [edi], ebx
.text:00266F68                 jmp     short loc_266F0A
.text:00266F6A ; ---------------------------------------------------------------------------
.text:00266F6A
.text:00266F6A loc_266F6A:                             ; CODE XREF: sub_266EA1+C3j
.text:00266F6A                 mov     ecx, eax
.text:00266F6C                 and     ecx, 0C0000000h
.text:00266F72                 cmp     ecx, 80000000h
.text:00266F78                 jnz     short loc_266F7F
.text:00266F7A                 mov     ecx, [ebp+var_4]
.text:00266F7D                 mov     [edi], ecx
.text:00266F7F
.text:00266F7F loc_266F7F:                             ; CODE XREF: sub_266EA1+75j
.text:00266F7F                                         ; sub_266EA1+D7j
.text:00266F7F                 push    eax
.text:00266F80
.text:00266F80 loc_266F80:                             ; CODE XREF: sub_266EA1+81j
.text:00266F80                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:00266F85                 xor     eax, eax
.text:00266F87
.text:00266F87 loc_266F87:                             ; CODE XREF: sub_266EA1+6Cj
.text:00266F87                 pop     edi
.text:00266F88                 pop     esi
.text:00266F89                 pop     ebx
.text:00266F8A                 leave
.text:00266F8B                 retn    14h
.text:00266F8B sub_266EA1      endp
.text:00266F8B
.text:00266F8E
.text:00266F8E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00266F8E
.text:00266F8E ; Attributes: bp-based frame
.text:00266F8E
.text:00266F8E sub_266F8E      proc near               ; CODE XREF: sub_5BD40j
.text:00266F8E                                         ; XCreateSaveGame(x,x,x,x,x,x)+1FDp ...
.text:00266F8E
.text:00266F8E var_10          = dword ptr -10h
.text:00266F8E var_C           = dword ptr -0Ch
.text:00266F8E var_8           = dword ptr -8
.text:00266F8E var_4           = dword ptr -4
.text:00266F8E arg_0           = dword ptr  8
.text:00266F8E arg_4           = dword ptr  0Ch
.text:00266F8E arg_8           = dword ptr  10h
.text:00266F8E arg_C           = dword ptr  14h
.text:00266F8E arg_10          = dword ptr  18h
.text:00266F8E
.text:00266F8E                 push    ebp
.text:00266F8F                 mov     ebp, esp
.text:00266F91                 sub     esp, 10h
.text:00266F94                 push    ebx
.text:00266F95                 push    esi
.text:00266F96                 push    edi
.text:00266F97                 mov     edi, [ebp+arg_C]
.text:00266F9A                 xor     ebx, ebx
.text:00266F9C                 cmp     edi, ebx
.text:00266F9E                 jz      short loc_266FA2
.text:00266FA0                 mov     [edi], ebx
.text:00266FA2
.text:00266FA2 loc_266FA2:                             ; CODE XREF: sub_266F8E+10j
.text:00266FA2                 mov     esi, [ebp+arg_10]
.text:00266FA5                 cmp     esi, ebx
.text:00266FA7                 jz      short loc_267005
.text:00266FA9                 mov     eax, [esi+8]
.text:00266FAC                 mov     [ebp+var_10], eax
.text:00266FAF                 mov     eax, [esi+0Ch]
.text:00266FB2                 mov     [ebp+var_C], eax
.text:00266FB5                 mov     eax, [esi+10h]
.text:00266FB8                 lea     ecx, [ebp+var_10]
.text:00266FBB                 push    ecx
.text:00266FBC                 push    [ebp+arg_8]
.text:00266FBF                 mov     ecx, eax
.text:00266FC1                 push    [ebp+arg_4]
.text:00266FC4                 and     cl, 1
.text:00266FC7                 neg     cl
.text:00266FC9                 push    esi
.text:00266FCA                 mov     edi, 103h
.text:00266FCF                 mov     [esi], edi
.text:00266FD1                 sbb     ecx, ecx
.text:00266FD3                 not     ecx
.text:00266FD5                 and     ecx, esi
.text:00266FD7                 push    ecx
.text:00266FD8                 push    ebx
.text:00266FD9                 push    eax
.text:00266FDA                 push    [ebp+arg_0]
.text:00266FDD                 call    ds:dword_485DF4
.text:00266FE3                 mov     ecx, 0C0000000h
.text:00266FE8                 mov     edx, eax
.text:00266FEA                 and     edx, ecx
.text:00266FEC                 cmp     edx, ecx
.text:00266FEE                 jz      short loc_267055
.text:00266FF0                 cmp     eax, edi
.text:00266FF2                 jz      short loc_267055
.text:00266FF4                 mov     eax, [ebp+arg_C]
.text:00266FF7                 cmp     eax, ebx
.text:00266FF9                 jz      short loc_267000
.text:00266FFB                 mov     ecx, [esi+4]
.text:00266FFE                 mov     [eax], ecx
.text:00267000
.text:00267000 loc_267000:                             ; CODE XREF: sub_266F8E+6Bj
.text:00267000                                         ; sub_266F8E+B0j
.text:00267000                 xor     eax, eax
.text:00267002                 inc     eax
.text:00267003                 jmp     short loc_26705D
.text:00267005 ; ---------------------------------------------------------------------------
.text:00267005
.text:00267005 loc_267005:                             ; CODE XREF: sub_266F8E+19j
.text:00267005                 push    ebx
.text:00267006                 push    [ebp+arg_8]
.text:00267009                 lea     eax, [ebp+var_8]
.text:0026700C                 push    [ebp+arg_4]
.text:0026700F                 push    eax
.text:00267010                 push    ebx
.text:00267011                 push    ebx
.text:00267012                 push    ebx
.text:00267013                 push    [ebp+arg_0]
.text:00267016                 call    ds:dword_485DF4
.text:0026701C                 cmp     eax, 103h
.text:00267021                 jnz     short loc_267035
.text:00267023                 push    ebx
.text:00267024                 push    ebx
.text:00267025                 push    [ebp+arg_0]
.text:00267028                 call    ds:dword_485E80
.text:0026702E                 cmp     eax, ebx
.text:00267030                 jl      short loc_267040
.text:00267032                 mov     eax, [ebp+var_8]
.text:00267035
.text:00267035 loc_267035:                             ; CODE XREF: sub_266F8E+93j
.text:00267035                 cmp     eax, ebx
.text:00267037                 jl      short loc_267040
.text:00267039                 mov     eax, [ebp+var_4]
.text:0026703C                 mov     [edi], eax
.text:0026703E                 jmp     short loc_267000
.text:00267040 ; ---------------------------------------------------------------------------
.text:00267040
.text:00267040 loc_267040:                             ; CODE XREF: sub_266F8E+A2j
.text:00267040                                         ; sub_266F8E+A9j
.text:00267040                 mov     ecx, eax
.text:00267042                 and     ecx, 0C0000000h
.text:00267048                 cmp     ecx, 80000000h
.text:0026704E                 jnz     short loc_267055
.text:00267050                 mov     ecx, [ebp+var_4]
.text:00267053                 mov     [edi], ecx
.text:00267055
.text:00267055 loc_267055:                             ; CODE XREF: sub_266F8E+60j
.text:00267055                                         ; sub_266F8E+64j ...
.text:00267055                 push    eax
.text:00267056                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026705B                 xor     eax, eax
.text:0026705D
.text:0026705D loc_26705D:                             ; CODE XREF: sub_266F8E+75j
.text:0026705D                 pop     edi
.text:0026705E                 pop     esi
.text:0026705F                 pop     ebx
.text:00267060                 leave
.text:00267061                 retn    14h
.text:00267061 sub_266F8E      endp
.text:00267061
.text:00267064 ; [00000084 BYTES: COLLAPSED FUNCTION SetEndOfFile(x). PRESS KEYPAD "+" TO EXPAND]
.text:002670E8 ; [000000FA BYTES: COLLAPSED FUNCTION SetFilePointer(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002671E2 ; [000000C8 BYTES: COLLAPSED FUNCTION SetFilePointerEx(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002672AA ; [00000066 BYTES: COLLAPSED FUNCTION GetFileTime(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267310 ; [00000072 BYTES: COLLAPSED FUNCTION SetFileTime(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267382 ; [00000027 BYTES: COLLAPSED FUNCTION FlushFileBuffers(x). PRESS KEYPAD "+" TO EXPAND]
.text:002673A9 ; [0000003E BYTES: COLLAPSED FUNCTION GetFileSizeEx(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002673E7
.text:002673E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002673E7
.text:002673E7 ; Attributes: bp-based frame
.text:002673E7
.text:002673E7 sub_2673E7      proc near               ; CODE XREF: sub_5BD50j
.text:002673E7
.text:002673E7 var_8           = dword ptr -8
.text:002673E7 var_4           = dword ptr -4
.text:002673E7 arg_0           = dword ptr  8
.text:002673E7 arg_4           = dword ptr  0Ch
.text:002673E7 arg_8           = dword ptr  10h
.text:002673E7 arg_C           = dword ptr  14h
.text:002673E7 arg_10          = dword ptr  18h
.text:002673E7
.text:002673E7                 push    ebp
.text:002673E8                 mov     ebp, esp
.text:002673EA                 push    ecx
.text:002673EB                 push    ecx
.text:002673EC                 mov     eax, [ebp+arg_C]
.text:002673EF                 mov     ecx, [eax+8]
.text:002673F2                 mov     [ebp+var_8], ecx
.text:002673F5                 mov     ecx, [eax+0Ch]
.text:002673F8                 mov     [ebp+var_4], ecx
.text:002673FB                 lea     ecx, [ebp+var_8]
.text:002673FE                 push    ecx
.text:002673FF                 push    [ebp+arg_8]
.text:00267402                 push    [ebp+arg_4]
.text:00267405                 push    eax
.text:00267406                 push    [ebp+arg_10]
.text:00267409                 push    ds:dword_485E8C
.text:0026740F                 push    0
.text:00267411                 push    [ebp+arg_0]
.text:00267414                 call    ds:dword_485DFC
.text:0026741A                 mov     ecx, 0C0000000h
.text:0026741F                 mov     edx, eax
.text:00267421                 and     edx, ecx
.text:00267423                 cmp     edx, ecx
.text:00267425                 jnz     short loc_267431
.text:00267427                 push    eax
.text:00267428                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026742D                 xor     eax, eax
.text:0026742F                 jmp     short locret_267434
.text:00267431 ; ---------------------------------------------------------------------------
.text:00267431
.text:00267431 loc_267431:                             ; CODE XREF: sub_2673E7+3Ej
.text:00267431                 xor     eax, eax
.text:00267433                 inc     eax
.text:00267434
.text:00267434 locret_267434:                          ; CODE XREF: sub_2673E7+48j
.text:00267434                 leave
.text:00267435                 retn    14h
.text:00267435 sub_2673E7      endp
.text:00267435
.text:00267438
.text:00267438 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267438
.text:00267438 ; Attributes: bp-based frame
.text:00267438
.text:00267438 sub_267438      proc near               ; CODE XREF: sub_5BD60j
.text:00267438
.text:00267438 var_8           = dword ptr -8
.text:00267438 var_4           = dword ptr -4
.text:00267438 arg_0           = dword ptr  8
.text:00267438 arg_4           = dword ptr  0Ch
.text:00267438 arg_8           = dword ptr  10h
.text:00267438 arg_C           = dword ptr  14h
.text:00267438 arg_10          = dword ptr  18h
.text:00267438
.text:00267438                 push    ebp
.text:00267439                 mov     ebp, esp
.text:0026743B                 push    ecx
.text:0026743C                 push    ecx
.text:0026743D                 mov     eax, [ebp+arg_C]
.text:00267440                 mov     ecx, [eax+8]
.text:00267443                 mov     [ebp+var_8], ecx
.text:00267446                 mov     ecx, [eax+0Ch]
.text:00267449                 mov     [ebp+var_4], ecx
.text:0026744C                 lea     ecx, [ebp+var_8]
.text:0026744F                 push    ecx
.text:00267450                 push    [ebp+arg_8]
.text:00267453                 push    [ebp+arg_4]
.text:00267456                 push    eax
.text:00267457                 push    [ebp+arg_10]
.text:0026745A                 push    ds:dword_485E8C
.text:00267460                 push    0
.text:00267462                 push    [ebp+arg_0]
.text:00267465                 call    ds:dword_485DF4
.text:0026746B                 mov     ecx, 0C0000000h
.text:00267470                 mov     edx, eax
.text:00267472                 and     edx, ecx
.text:00267474                 cmp     edx, ecx
.text:00267476                 jnz     short loc_267482
.text:00267478                 push    eax
.text:00267479                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026747E                 xor     eax, eax
.text:00267480                 jmp     short locret_267485
.text:00267482 ; ---------------------------------------------------------------------------
.text:00267482
.text:00267482 loc_267482:                             ; CODE XREF: sub_267438+3Ej
.text:00267482                 xor     eax, eax
.text:00267484                 inc     eax
.text:00267485
.text:00267485 locret_267485:                          ; CODE XREF: sub_267438+48j
.text:00267485                 leave
.text:00267486                 retn    14h
.text:00267486 sub_267438      endp
.text:00267486
.text:00267489
.text:00267489 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267489
.text:00267489 ; Attributes: bp-based frame
.text:00267489
.text:00267489 sub_267489      proc near               ; CODE XREF: sub_5ABB0+F5p
.text:00267489                                         ; sub_5ABB0+161p ...
.text:00267489
.text:00267489 var_24          = dword ptr -24h
.text:00267489 var_1C          = dword ptr -1Ch
.text:00267489 var_18          = dword ptr -18h
.text:00267489 var_4           = dword ptr -4
.text:00267489 arg_0           = dword ptr  8
.text:00267489
.text:00267489                 push    ebp
.text:0026748A                 mov     ebp, esp
.text:0026748C
.text:0026748C loc_26748C:                             ; DATA XREF: .text:002EC928o
.text:0026748C                 sub     esp, 24h
.text:0026748F                 push    esi
.text:00267490                 lea     eax, [ebp+arg_0]
.text:00267493                 push    eax
.text:00267494                 push    ds:dword_485E98
.text:0026749A                 or      esi, 0FFFFFFFFh
.text:0026749D                 push    [ebp+arg_0]
.text:002674A0                 call    ds:dword_485E30
.text:002674A6                 test    eax, eax
.text:002674A8                 jge     short loc_2674B2
.text:002674AA                 push    eax
.text:002674AB                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:002674B0                 jmp     short loc_267529
.text:002674B2 ; ---------------------------------------------------------------------------
.text:002674B2
.text:002674B2 loc_2674B2:                             ; CODE XREF: sub_267489+1Fj
.text:002674B2                 push    edi
.text:002674B3                 lea     eax, [ebp+var_4]
.text:002674B6                 push    eax
.text:002674B7                 lea     eax, [ebp+var_24]
.text:002674BA                 push    eax
.text:002674BB                 push    20h
.text:002674BD                 push    5
.text:002674BF                 push    [ebp+arg_0]
.text:002674C2                 call    ds:dword_485E94
.text:002674C8                 mov     edi, eax
.text:002674CA                 test    edi, edi
.text:002674CC                 jge     short loc_2674DF
.text:002674CE                 mov     ecx, [ebp+arg_0]
.text:002674D1                 call    ds:dword_485E28
.text:002674D7                 push    edi
.text:002674D8                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:002674DD                 jmp     short loc_267528
.text:002674DF ; ---------------------------------------------------------------------------
.text:002674DF
.text:002674DF loc_2674DF:                             ; CODE XREF: sub_267489+43j
.text:002674DF                 cmp     [ebp+var_1C], 4
.text:002674E3                 jnz     short loc_267515
.text:002674E5                 cmp     [ebp+var_18], 58544146h
.text:002674EC                 jnz     short loc_267502
.text:002674EE                 mov     eax, [ebp+arg_0]
.text:002674F1                 mov     eax, [eax+8]
.text:002674F4                 test    byte ptr [eax], 1
.text:002674F7                 jnz     short loc_2674FE
.text:002674F9                 mov     esi, [eax+1Ch]
.text:002674FC                 jmp     short loc_26751F
.text:002674FE ; ---------------------------------------------------------------------------
.text:002674FE
.text:002674FE loc_2674FE:                             ; CODE XREF: sub_267489+6Ej
.text:002674FE                 xor     esi, esi
.text:00267500                 jmp     short loc_26751F
.text:00267502 ; ---------------------------------------------------------------------------
.text:00267502
.text:00267502 loc_267502:                             ; CODE XREF: sub_267489+63j
.text:00267502                 cmp     [ebp+var_18], 58464447h
.text:00267509                 jnz     short loc_267515
.text:0026750B                 mov     eax, [ebp+arg_0]
.text:0026750E                 mov     eax, [eax+8]
.text:00267511                 mov     esi, [eax]
.text:00267513                 jmp     short loc_26751F
.text:00267515 ; ---------------------------------------------------------------------------
.text:00267515
.text:00267515 loc_267515:                             ; CODE XREF: sub_267489+5Aj
.text:00267515                                         ; sub_267489+80j
.text:00267515                 push    0C000000Dh
.text:0026751A                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026751F
.text:0026751F loc_26751F:                             ; CODE XREF: sub_267489+73j
.text:0026751F                                         ; sub_267489+77j ...
.text:0026751F                 mov     ecx, [ebp+arg_0]
.text:00267522                 call    ds:dword_485E28
.text:00267528
.text:00267528 loc_267528:                             ; CODE XREF: sub_267489+54j
.text:00267528                 pop     edi
.text:00267529
.text:00267529 loc_267529:                             ; CODE XREF: sub_267489+27j
.text:00267529                 mov     eax, esi
.text:0026752B                 pop     esi
.text:0026752C                 leave
.text:0026752D                 retn    4
.text:0026752D sub_267489      endp
.text:0026752D
.text:00267530 ; [0000003B BYTES: COLLAPSED FUNCTION GetFileSize(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026756B ; [0000018B BYTES: COLLAPSED FUNCTION CreateFileA(x,x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002676F6 ; [000002E2 BYTES: COLLAPSED FUNCTION CopyFileExA(x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002679D8 ; [0000001F BYTES: COLLAPSED FUNCTION CopyFileA(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002679F7
.text:002679F7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002679F7
.text:002679F7
.text:002679F7 sub_2679F7      proc near               ; CODE XREF: FindFirstFileA(x,x)+F3p
.text:002679F7                                         ; FindNextFileA(x,x)+45p
.text:002679F7
.text:002679F7 arg_0           = dword ptr  4
.text:002679F7 arg_4           = dword ptr  8
.text:002679F7
.text:002679F7                 mov     eax, [esp+arg_0]
.text:002679FB                 mov     ecx, [eax+38h]
.text:002679FE                 mov     edx, [esp+arg_4]
.text:00267A02                 mov     [edx], ecx
.text:00267A04                 mov     ecx, [eax+8]
.text:00267A07                 mov     [edx+4], ecx
.text:00267A0A                 mov     ecx, [eax+0Ch]
.text:00267A0D                 mov     [edx+8], ecx
.text:00267A10                 mov     ecx, [eax+10h]
.text:00267A13                 mov     [edx+0Ch], ecx
.text:00267A16                 mov     ecx, [eax+14h]
.text:00267A19                 mov     [edx+10h], ecx
.text:00267A1C                 mov     ecx, [eax+18h]
.text:00267A1F                 mov     [edx+14h], ecx
.text:00267A22                 mov     ecx, [eax+1Ch]
.text:00267A25                 mov     [edx+18h], ecx
.text:00267A28                 mov     ecx, [eax+2Ch]
.text:00267A2B                 mov     [edx+1Ch], ecx
.text:00267A2E                 mov     ecx, [eax+28h]
.text:00267A31                 mov     [edx+20h], ecx
.text:00267A34                 mov     ecx, [eax+3Ch]
.text:00267A37                 push    ebx
.text:00267A38                 push    esi
.text:00267A39                 mov     ebx, ecx
.text:00267A3B                 push    edi
.text:00267A3C                 shr     ecx, 2
.text:00267A3F                 lea     esi, [eax+40h]
.text:00267A42                 lea     edi, [edx+2Ch]
.text:00267A45                 rep movsd
.text:00267A47                 mov     ecx, ebx
.text:00267A49                 and     ecx, 3
.text:00267A4C                 rep movsb
.text:00267A4E                 mov     eax, [eax+3Ch]
.text:00267A51                 pop     edi
.text:00267A52                 pop     esi
.text:00267A53                 mov     byte ptr [eax+edx+2Ch], 0
.text:00267A58                 mov     byte ptr [edx+130h], 0
.text:00267A5F                 pop     ebx
.text:00267A60                 retn    8
.text:00267A60 sub_2679F7      endp
.text:00267A60
.text:00267A63 ; [0000010D BYTES: COLLAPSED FUNCTION FindFirstFileA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267B70 ; [00000051 BYTES: COLLAPSED FUNCTION FindNextFileA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267BC1
.text:00267BC1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267BC1
.text:00267BC1
.text:00267BC1 sub_267BC1      proc near               ; CODE XREF: sub_5BD20j
.text:00267BC1                                         ; sub_265816+21Ap ...
.text:00267BC1
.text:00267BC1 arg_0           = dword ptr  4
.text:00267BC1
.text:00267BC1                 push    [esp+arg_0]
.text:00267BC5                 call    ds:dword_485DD4
.text:00267BCB                 test    eax, eax
.text:00267BCD                 jl      short loc_267BD4
.text:00267BCF                 xor     eax, eax
.text:00267BD1                 inc     eax
.text:00267BD2                 jmp     short locret_267BDC
.text:00267BD4 ; ---------------------------------------------------------------------------
.text:00267BD4
.text:00267BD4 loc_267BD4:                             ; CODE XREF: sub_267BC1+Cj
.text:00267BD4                 push    eax
.text:00267BD5                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:00267BDA                 xor     eax, eax
.text:00267BDC
.text:00267BDC locret_267BDC:                          ; CODE XREF: sub_267BC1+11j
.text:00267BDC                 retn    4
.text:00267BDC sub_267BC1      endp
.text:00267BDC
.text:00267BDF ; [00000026 BYTES: COLLAPSED FUNCTION DuplicateHandle(x,x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267C05
.text:00267C05 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267C05
.text:00267C05
.text:00267C05 sub_267C05      proc near               ; CODE XREF: sub_5D2D0+24p
.text:00267C05                                         ; sub_5D490+B0p ...
.text:00267C05
.text:00267C05 arg_0           = dword ptr  8
.text:00267C05 arg_4           = dword ptr  0Ch
.text:00267C05
.text:00267C05                 mov     eax, offset dword_512650
.text:00267C0A                 push    esi
.text:00267C0B                 mov     esi, eax
.text:00267C0D                 mov     ecx, eax
.text:00267C0F                 mov     eax, offset dword_512658
.text:00267C14                 xor     edx, edx
.text:00267C16                 cmp     esi, eax
.text:00267C18                 pop     esi
.text:00267C19                 jnb     short loc_267C26
.text:00267C1B
.text:00267C1B loc_267C1B:                             ; CODE XREF: sub_267C05+1Fj
.text:00267C1B                 cmp     [ecx], edx
.text:00267C1D                 jnz     short loc_267C38
.text:00267C1F                 add     ecx, 4
.text:00267C22                 cmp     ecx, eax
.text:00267C24                 jb      short loc_267C1B
.text:00267C26
.text:00267C26 loc_267C26:                             ; CODE XREF: sub_267C05+14j
.text:00267C26                 push    edx
.text:00267C27                 push    edx
.text:00267C28                 push    [esp+4+arg_4]
.text:00267C2C                 push    [esp+8+arg_0]
.text:00267C30                 call    sub_26A0E7
.text:00267C35
.text:00267C35 locret_267C35:                          ; CODE XREF: sub_267C05+40j
.text:00267C35                 retn    8
.text:00267C38 ; ---------------------------------------------------------------------------
.text:00267C38
.text:00267C38 loc_267C38:                             ; CODE XREF: sub_267C05+18j
.text:00267C38                 push    edx
.text:00267C39                 push    1
.text:00267C3B                 push    [esp+4+arg_4]
.text:00267C3F                 push    [esp+8+arg_0]
.text:00267C43                 call    dword ptr [ecx]
.text:00267C45                 jmp     short locret_267C35
.text:00267C45 sub_267C05      endp
.text:00267C45
.text:00267C47 ; [000000E1 BYTES: COLLAPSED FUNCTION XWriteTitleInfoNoReboot(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267D28 ; [00000064 BYTES: COLLAPSED FUNCTION XGetLaunchInfo(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267D8C
.text:00267D8C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267D8C
.text:00267D8C ; Attributes: bp-based frame
.text:00267D8C
.text:00267D8C sub_267D8C      proc near               ; CODE XREF: sub_269CBE+AFp
.text:00267D8C                                         ; sub_26A0E7+2Ep ...
.text:00267D8C
.text:00267D8C arg_0           = dword ptr  8
.text:00267D8C arg_4           = dword ptr  0Ch
.text:00267D8C arg_8           = dword ptr  10h
.text:00267D8C arg_C           = dword ptr  14h
.text:00267D8C arg_10          = dword ptr  18h
.text:00267D8C
.text:00267D8C                 push    ebp
.text:00267D8D                 mov     ebp, esp
.text:00267D8F                 push    [ebp+arg_10]
.text:00267D92                 push    [ebp+arg_C]
.text:00267D95                 push    [ebp+arg_8]
.text:00267D98                 push    1
.text:00267D9A                 push    [ebp+arg_4]
.text:00267D9D                 push    [ebp+arg_0]
.text:00267DA0                 call    _XWriteTitleInfoNoReboot@20 ; XWriteTitleInfoNoReboot(x,x,x,x,x)
.text:00267DA5                 test    eax, eax
.text:00267DA7                 jl      short loc_267DC8
.text:00267DA9                 mov     eax, large fs:20h
.text:00267DAF                 mov     eax, [eax+250h]
.text:00267DB5                 test    eax, eax
.text:00267DB7                 jz      short loc_267DC0
.text:00267DB9                 push    0
.text:00267DBB                 push    2
.text:00267DBD                 call    dword ptr [eax+14h]
.text:00267DC0
.text:00267DC0 loc_267DC0:                             ; CODE XREF: sub_267D8C+2Bj
.text:00267DC0                 push    2
.text:00267DC2                 call    ds:dword_485EB4
.text:00267DC8
.text:00267DC8 loc_267DC8:                             ; CODE XREF: sub_267D8C+1Bj
.text:00267DC8                 push    eax
.text:00267DC9                 call    ds:dword_485DD0
.text:00267DCF                 pop     ebp
.text:00267DD0                 retn    14h
.text:00267DD0 sub_267D8C      endp
.text:00267DD0
.text:00267DD3 ; [0000006C BYTES: COLLAPSED FUNCTION CreateDirectoryA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00267E3F ; [0000008E BYTES: COLLAPSED FUNCTION RemoveDirectoryA(x). PRESS KEYPAD "+" TO EXPAND]
.text:00267ECD
.text:00267ECD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267ECD
.text:00267ECD ; Attributes: bp-based frame
.text:00267ECD
.text:00267ECD sub_267ECD      proc near               ; CODE XREF: sub_5E660+67p
.text:00267ECD                                         ; sub_B5490+75p ...
.text:00267ECD
.text:00267ECD var_8           = dword ptr -8
.text:00267ECD var_4           = dword ptr -4
.text:00267ECD
.text:00267ECD                 push    ebp
.text:00267ECE                 mov     ebp, esp
.text:00267ED0                 push    ecx
.text:00267ED1                 push    ecx
.text:00267ED2                 push    0
.text:00267ED4                 push    4
.text:00267ED6                 lea     eax, [ebp+var_4]
.text:00267ED9                 push    eax
.text:00267EDA                 lea     eax, [ebp+var_8]
.text:00267EDD                 push    eax
.text:00267EDE                 push    7
.text:00267EE0                 call    sub_26F964
.text:00267EE5                 test    eax, eax
.text:00267EE7                 jl      short loc_267EF6
.text:00267EE9                 mov     eax, [ebp+var_4]
.text:00267EEC                 cmp     eax, 9
.text:00267EEF                 jbe     short locret_267EF8
.text:00267EF1                 xor     eax, eax
.text:00267EF3                 inc     eax
.text:00267EF4                 leave
.text:00267EF5                 retn
.text:00267EF6 ; ---------------------------------------------------------------------------
.text:00267EF6
.text:00267EF6 loc_267EF6:                             ; CODE XREF: sub_267ECD+1Aj
.text:00267EF6                 xor     eax, eax
.text:00267EF8
.text:00267EF8 locret_267EF8:                          ; CODE XREF: sub_267ECD+22j
.text:00267EF8                 leave
.text:00267EF9                 retn
.text:00267EF9 sub_267ECD      endp
.text:00267EF9
.text:00267EFA
.text:00267EFA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00267EFA
.text:00267EFA ; Attributes: bp-based frame
.text:00267EFA
.text:00267EFA sub_267EFA      proc near               ; CODE XREF: sub_64620+53p
.text:00267EFA                                         ; sub_64620+C6p
.text:00267EFA
.text:00267EFA arg_0           = dword ptr  8
.text:00267EFA arg_4           = dword ptr  0Ch
.text:00267EFA
.text:00267EFA                 push    ebp
.text:00267EFB                 mov     ebp, esp
.text:00267EFD                 push    esi
.text:00267EFE                 mov     esi, [ebp+arg_4]
.text:00267F01                 test    esi, esi
.text:00267F03                 jns     short loc_267F82
.text:00267F05                 test    esi, 0F000000h
.text:00267F0B                 jnz     short loc_267F19
.text:00267F0D                 and     esi, 0FCFFFFFFh
.text:00267F13                 or      esi, 0C000000h
.text:00267F19
.text:00267F19 loc_267F19:                             ; CODE XREF: sub_267EFA+11j
.text:00267F19                 mov     ecx, esi
.text:00267F1B                 shr     ecx, 18h
.text:00267F1E                 mov     eax, esi
.text:00267F20                 shr     eax, 1Ch
.text:00267F23                 and     ecx, 0Fh
.text:00267F26                 and     eax, 3
.text:00267F29                 cmp     ecx, 1
.text:00267F2C                 push    dword_56DD6C[eax*4]
.text:00267F33                 jnz     short loc_267F4B
.text:00267F35                 push    1000h
.text:00267F3A                 push    0FFFFFFh
.text:00267F3F                 push    0
.text:00267F41                 push    [ebp+arg_0]
.text:00267F44                 call    sub_2666A8
.text:00267F49                 jmp     short loc_267F5B
.text:00267F4B ; ---------------------------------------------------------------------------
.text:00267F4B
.text:00267F4B loc_267F4B:                             ; CODE XREF: sub_267EFA+39j
.text:00267F4B                 xor     eax, eax
.text:00267F4D                 inc     eax
.text:00267F4E                 shl     eax, cl
.text:00267F50                 push    eax
.text:00267F51                 push    0FFFFFFFFh
.text:00267F53                 push    [ebp+arg_0]
.text:00267F56                 call    _XPhysicalAlloc@16 ; XPhysicalAlloc(x,x,x,x)
.text:00267F5B
.text:00267F5B loc_267F5B:                             ; CODE XREF: sub_267EFA+4Fj
.text:00267F5B                 mov     edx, eax
.text:00267F5D                 test    edx, edx
.text:00267F5F                 jz      short loc_267F93
.text:00267F61                 test    esi, 40000000h
.text:00267F67                 jz      short loc_267F93
.text:00267F69                 mov     ecx, [ebp+arg_0]
.text:00267F6C                 mov     esi, ecx
.text:00267F6E                 push    edi
.text:00267F6F                 shr     ecx, 2
.text:00267F72                 xor     eax, eax
.text:00267F74                 mov     edi, edx
.text:00267F76                 rep stosd
.text:00267F78                 mov     ecx, esi
.text:00267F7A                 and     ecx, 3
.text:00267F7D                 rep stosb
.text:00267F7F                 pop     edi
.text:00267F80                 jmp     short loc_267F93
.text:00267F82 ; ---------------------------------------------------------------------------
.text:00267F82
.text:00267F82 loc_267F82:                             ; CODE XREF: sub_267EFA+9j
.text:00267F82                 push    [ebp+arg_0]
.text:00267F85                 shr     esi, 18h
.text:00267F88                 and     esi, 40h
.text:00267F8B                 push    esi
.text:00267F8C                 call    unknown_libname_44 ; XBOX Flirt v2.00 Final.
.text:00267F91                 mov     edx, eax
.text:00267F93
.text:00267F93 loc_267F93:                             ; CODE XREF: sub_267EFA+65j
.text:00267F93                                         ; sub_267EFA+6Dj ...
.text:00267F93                 mov     eax, edx
.text:00267F95                 pop     esi
.text:00267F96                 pop     ebp
.text:00267F97                 retn    8
.text:00267F97 sub_267EFA      endp
.text:00267F97
.text:00267F9A ; [00000067 BYTES: COLLAPSED FUNCTION XGetSectionHandleA(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268001 ; [00000021 BYTES: COLLAPSED FUNCTION XLoadSectionByHandle(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268022 ; [0000001E BYTES: COLLAPSED FUNCTION XFreeSectionByHandle(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268040 ; [0000001B BYTES: COLLAPSED FUNCTION XLoadSectionA(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026805B ; [0000001B BYTES: COLLAPSED FUNCTION XFreeSectionA(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268076 ; [0000000A BYTES: COLLAPSED FUNCTION unknown_libname_41. PRESS KEYPAD "+" TO EXPAND]
.text:00268080 ; [00000032 BYTES: COLLAPSED FUNCTION OutputDebugStringA(x). PRESS KEYPAD "+" TO EXPAND]
.text:002680B2 ; [00000014 BYTES: COLLAPSED FUNCTION HexDigitToChar(x). PRESS KEYPAD "+" TO EXPAND]
.text:002680C6 ; [00000092 BYTES: COLLAPSED FUNCTION XapiSaveGameHashEncode(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268158 ; [00000048 BYTES: COLLAPSED FUNCTION XapiValidateAndSkipUnicodeSignature(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002681A0 ; [00000183 BYTES: COLLAPSED FUNCTION XapiFindValueInMetaFile(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268323 ; [00000101 BYTES: COLLAPSED FUNCTION sub_268323. PRESS KEYPAD "+" TO EXPAND]
.text:00268424 ; [00000080 BYTES: COLLAPSED FUNCTION XapiVerifyGameName(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002684A4 ; [0000005C BYTES: COLLAPSED FUNCTION XapiTouchDirectoryTimestamp(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268500 ; [00000263 BYTES: COLLAPSED FUNCTION XCreateSaveGame(x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268763 ; [000000D0 BYTES: COLLAPSED FUNCTION XDeleteSaveGame(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268833 ; [0000010A BYTES: COLLAPSED FUNCTION XFindFirstSaveGame(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026893D ; [00000047 BYTES: COLLAPSED FUNCTION XFindNextSaveGame(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268984
.text:00268984 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00268984
.text:00268984
.text:00268984 sub_268984      proc near               ; CODE XREF: sub_7B880+7Bp
.text:00268984                                         ; sub_2486E0+84p
.text:00268984
.text:00268984 arg_0           = dword ptr  4
.text:00268984
.text:00268984                 mov     ecx, [esp+arg_0]
.text:00268988                 mov     edx, [ecx]
.text:0026898A                 xor     eax, eax
.text:0026898C                 cmp     edx, 434F4E54h
.text:00268992                 push    esi
.text:00268993                 jz      short loc_2689C2
.text:00268995                 cmp     edx, 4E49434Bh
.text:0026899B                 jz      short loc_2689B2
.text:0026899D                 cmp     edx, 53425645h
.text:002689A3                 jz      short loc_2689C2
.text:002689A5                 cmp     edx, 0BE4BEA00h
.text:002689AB                 jnz     short loc_2689D6
.text:002689AD                 mov     esi, [ecx+0Ch]
.text:002689B0                 jmp     short loc_2689C5
.text:002689B2 ; ---------------------------------------------------------------------------
.text:002689B2
.text:002689B2 loc_2689B2:                             ; CODE XREF: sub_268984+17j
.text:002689B2                 push    24830000h
.text:002689B7                 push    ecx
.text:002689B8                 call    sub_645B0
.text:002689BD                 xor     eax, eax
.text:002689BF                 inc     eax
.text:002689C0                 jmp     short loc_2689D6
.text:002689C2 ; ---------------------------------------------------------------------------
.text:002689C2
.text:002689C2 loc_2689C2:                             ; CODE XREF: sub_268984+Fj
.text:002689C2                                         ; sub_268984+1Fj
.text:002689C2                 mov     esi, [ecx+4]
.text:002689C5
.text:002689C5 loc_2689C5:                             ; CODE XREF: sub_268984+2Cj
.text:002689C5                 push    24830000h
.text:002689CA                 push    ecx
.text:002689CB                 call    sub_645B0
.text:002689D0                 push    esi
.text:002689D1                 call    sub_267BC1
.text:002689D6
.text:002689D6 loc_2689D6:                             ; CODE XREF: sub_268984+27j
.text:002689D6                                         ; sub_268984+3Cj
.text:002689D6                 pop     esi
.text:002689D7                 retn    4
.text:002689D7 sub_268984      endp
.text:002689D7
.text:002689DA
.text:002689DA ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002689DA
.text:002689DA ; Attributes: bp-based frame
.text:002689DA
.text:002689DA sub_2689DA      proc near               ; CODE XREF: sub_1D8F10+95p
.text:002689DA                                         ; sub_1D9010+18p ...
.text:002689DA
.text:002689DA var_8           = dword ptr -8
.text:002689DA var_4           = dword ptr -4
.text:002689DA
.text:002689DA                 push    ebp
.text:002689DB                 mov     ebp, esp
.text:002689DD                 push    ecx
.text:002689DE                 push    ecx
.text:002689DF                 push    0
.text:002689E1                 push    4
.text:002689E3                 lea     eax, [ebp+var_4]
.text:002689E6                 push    eax
.text:002689E7                 lea     eax, [ebp+var_8]
.text:002689EA                 push    eax
.text:002689EB                 push    8
.text:002689ED                 call    sub_26F964
.text:002689F2                 test    eax, eax
.text:002689F4                 jl      short loc_268A04
.text:002689F6                 mov     eax, [ebp+var_4]
.text:002689F9                 shr     eax, 10h
.text:002689FC                 and     eax, 5Fh
.text:002689FF                 mov     [ebp+var_4], eax
.text:00268A02                 jmp     short loc_268A08
.text:00268A04 ; ---------------------------------------------------------------------------
.text:00268A04
.text:00268A04 loc_268A04:                             ; CODE XREF: sub_2689DA+1Aj
.text:00268A04                 and     [ebp+var_4], 0
.text:00268A08
.text:00268A08 loc_268A08:                             ; CODE XREF: sub_2689DA+28j
.text:00268A08                 call    sub_26A67C
.text:00268A0D                 dec     eax
.text:00268A0E                 jnz     short loc_268A1A
.text:00268A10                 call    _XGetVideoStandard@0 ; XGetVideoStandard()
.text:00268A15                 cmp     eax, 3
.text:00268A18                 jnz     short loc_268A1E
.text:00268A1A
.text:00268A1A loc_268A1A:                             ; CODE XREF: sub_2689DA+34j
.text:00268A1A                 and     [ebp+var_4], 0FFFFFFF1h
.text:00268A1E
.text:00268A1E loc_268A1E:                             ; CODE XREF: sub_2689DA+3Ej
.text:00268A1E                 mov     eax, [ebp+var_4]
.text:00268A21                 leave
.text:00268A22                 retn
.text:00268A22 sub_2689DA      endp
.text:00268A22
.text:00268A23 ; [00000029 BYTES: COLLAPSED FUNCTION XGetVideoStandard(). PRESS KEYPAD "+" TO EXPAND]
.text:00268A4C ; [00000045 BYTES: COLLAPSED FUNCTION XapiFiberStartup(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268A91 ; [0000008C BYTES: COLLAPSED FUNCTION CreateFiber(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268B1D ; [00000013 BYTES: COLLAPSED FUNCTION DeleteFiber(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268B30 ; [0000003F BYTES: COLLAPSED FUNCTION SwitchToFiber(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268B6F ; [00000036 BYTES: COLLAPSED FUNCTION ConvertThreadToFiber(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268BA5                 align 2
.text:00268BA6 ; [00000028 BYTES: COLLAPSED FUNCTION XGetGameRegion(). PRESS KEYPAD "+" TO EXPAND]
.text:00268BCE
.text:00268BCE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00268BCE
.text:00268BCE ; Attributes: bp-based frame
.text:00268BCE
.text:00268BCE sub_268BCE      proc near               ; CODE XREF: sub_365430:loc_3654AEp
.text:00268BCE                                         ; FZFULLUI:00365814p
.text:00268BCE
.text:00268BCE var_8           = dword ptr -8
.text:00268BCE var_4           = dword ptr -4
.text:00268BCE
.text:00268BCE                 push    ebp
.text:00268BCF                 mov     ebp, esp
.text:00268BD1                 push    ecx
.text:00268BD2                 push    ecx
.text:00268BD3                 push    0
.text:00268BD5                 push    4
.text:00268BD7                 lea     eax, [ebp+var_4]
.text:00268BDA                 push    eax
.text:00268BDB                 lea     eax, [ebp+var_8]
.text:00268BDE                 push    eax
.text:00268BDF                 push    11h
.text:00268BE1                 call    sub_26F964
.text:00268BE6                 test    eax, eax
.text:00268BE8                 jl      short loc_268BF5
.text:00268BEA                 test    byte ptr [ebp+var_4], 4
.text:00268BEE                 jnz     short loc_268BF5
.text:00268BF0                 xor     eax, eax
.text:00268BF2                 inc     eax
.text:00268BF3                 leave
.text:00268BF4                 retn
.text:00268BF5 ; ---------------------------------------------------------------------------
.text:00268BF5
.text:00268BF5 loc_268BF5:                             ; CODE XREF: sub_268BCE+1Aj
.text:00268BF5                                         ; sub_268BCE+20j
.text:00268BF5                 push    2
.text:00268BF7                 pop     eax
.text:00268BF8                 leave
.text:00268BF9                 retn
.text:00268BF9 sub_268BCE      endp
.text:00268BF9
.text:00268BFA ; [00000064 BYTES: COLLAPSED FUNCTION lstrcmpA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268C5E ; [00000045 BYTES: COLLAPSED FUNCTION lstrcmpiA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268CA3 ; [0000003E BYTES: COLLAPSED FUNCTION lstrcpyA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268CE1
.text:00268CE1 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00268CE1
.text:00268CE1
.text:00268CE1 sub_268CE1      proc near               ; CODE XREF: XWriteTitleInfoNoReboot(x,x,x,x,x)+ADp
.text:00268CE1                                         ; XWriteTitleInfoNoReboot(x,x,x,x,x)+D3p ...
.text:00268CE1                 push    10h
.text:00268CE3                 push    offset dword_4CE718
.text:00268CE8                 call    __SEH_prolog
.text:00268CED                 xor     ebx, ebx
.text:00268CEF                 mov     [ebp-4], ebx
.text:00268CF2                 mov     ecx, [ebp+0Ch]
.text:00268CF5                 mov     [ebp-20h], ecx
.text:00268CF8                 mov     eax, [ebp+8]
.text:00268CFB                 mov     [ebp-1Ch], eax
.text:00268CFE                 cmp     [ebp+10h], ebx
.text:00268D01                 jz      short loc_268D28
.text:00268D03
.text:00268D03 loc_268D03:                             ; CODE XREF: sub_268CE1+3Aj
.text:00268D03                 cmp     [ebp+10h], ebx
.text:00268D06                 jz      short loc_268D22
.text:00268D08                 mov     dl, [ecx]
.text:00268D0A                 cmp     dl, bl
.text:00268D0C                 jz      short loc_268D1D
.text:00268D0E                 mov     [eax], dl
.text:00268D10                 inc     eax
.text:00268D11                 mov     [ebp-1Ch], eax
.text:00268D14                 inc     ecx
.text:00268D15                 mov     [ebp-20h], ecx
.text:00268D18                 dec     dword ptr [ebp+10h]
.text:00268D1B                 jmp     short loc_268D03
.text:00268D1D ; ---------------------------------------------------------------------------
.text:00268D1D
.text:00268D1D loc_268D1D:                             ; CODE XREF: sub_268CE1+2Bj
.text:00268D1D                 cmp     [ebp+10h], ebx
.text:00268D20                 jnz     short loc_268D26
.text:00268D22
.text:00268D22 loc_268D22:                             ; CODE XREF: sub_268CE1+25j
.text:00268D22                 dec     eax
.text:00268D23                 mov     [ebp-1Ch], eax
.text:00268D26
.text:00268D26 loc_268D26:                             ; CODE XREF: sub_268CE1+3Fj
.text:00268D26                 mov     [eax], bl
.text:00268D28
.text:00268D28 loc_268D28:                             ; CODE XREF: sub_268CE1+20j
.text:00268D28                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:00268D2C                 mov     eax, [ebp+8]
.text:00268D2F                 jmp     short loc_268D3E
.text:00268D31 ; ---------------------------------------------------------------------------
.text:00268D31                 xor     eax, eax
.text:00268D33                 inc     eax
.text:00268D34                 retn
.text:00268D35 ; ---------------------------------------------------------------------------
.text:00268D35                 mov     esp, [ebp-18h]
.text:00268D38                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:00268D3C                 xor     eax, eax
.text:00268D3E
.text:00268D3E loc_268D3E:                             ; CODE XREF: sub_268CE1+4Ej
.text:00268D3E                 call    __SEH_epilog
.text:00268D43                 retn    0Ch
.text:00268D43 sub_268CE1      endp ; sp = -8
.text:00268D43
.text:00268D46 ; [0000005A BYTES: COLLAPSED FUNCTION lstrcatA(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268DA0 ; [0000003E BYTES: COLLAPSED FUNCTION lstrlenA(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268DDE ; [00000063 BYTES: COLLAPSED FUNCTION IntersectRect(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268E41
.text:00268E41 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00268E41
.text:00268E41
.text:00268E41 ; DWORD __stdcall sub_268E41(LPVOID)
.text:00268E41 sub_268E41      proc near               ; DATA XREF: _mainCRTStartup+4Bo
.text:00268E41                 call    sub_26A8F2
.text:00268E41 sub_268E41      endp
.text:00268E41
.text:00268E46 ; [0000006F BYTES: COLLAPSED FUNCTION mainXapiStartup(x). PRESS KEYPAD "+" TO EXPAND]
.text:00268EB5 ; [00000072 BYTES: COLLAPSED FUNCTION _mainCRTStartup. PRESS KEYPAD "+" TO EXPAND]
.text:00268F27
.text:00268F27 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00268F27
.text:00268F27 ; Attributes: library function
.text:00268F27
.text:00268F27 ; __stdcall XapiFormatObjectAttributes(x,x,x)
.text:00268F27 _XapiFormatObjectAttributes@12 proc near
.text:00268F27                                         ; CODE XREF: CreateEventA(x,x,x,x)+17p
.text:00268F27                                         ; CreateSemaphoreA(x,x,x,x)+17p ...
.text:00268F27
.text:00268F27 var_4           = dword ptr -4
.text:00268F27 arg_4           = dword ptr  8
.text:00268F27 arg_8           = dword ptr  0Ch
.text:00268F27
.text:00268F27                 push    esi
.text:00268F28                 push    [esp+4+arg_8]
.text:00268F2C                 mov     esi, [esp+8+arg_4]
.text:00268F30                 push    esi
.text:00268F31                 call    ds:dword_485D98
.text:00268F37                 mov     eax, [esp+8]
.text:00268F3B                 mov     [eax+4], esi
.text:00268F3E                 mov     dword ptr [eax], 0FFFFFFFCh
.text:00268F44                 mov     dword ptr [eax+8], 80h
.text:00268F4B                 pop     esi
.text:00268F4C                 retn    0Ch
.text:00268F4C _XapiFormatObjectAttributes@12 endp
.text:00268F4C
.text:00268F4F ; [0000002E BYTES: COLLAPSED FUNCTION XapiFormatTimeOut(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268F7D ; [00000022 BYTES: COLLAPSED FUNCTION XQueryValue(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00268F9F ; [00000199 BYTES: COLLAPSED FUNCTION xCompareStringW(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00269138 ; [00000078 BYTES: COLLAPSED FUNCTION XapiValidateDiskPartitionEx(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002691B0 ; [000000E7 BYTES: COLLAPSED FUNCTION XapiCopySectionToFile(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00269297 ; [00000334 BYTES: COLLAPSED FUNCTION XapiMapLetterToDirectory(x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:002695CB ; [00000055 BYTES: COLLAPSED FUNCTION XapiSetupPerTitleDriveLetters(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00269620 ; [00000065 BYTES: COLLAPSED FUNCTION XapiBootToDash(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:00269685 ; [00000011 BYTES: COLLAPSED FUNCTION XapiValidateDiskPartition(x). PRESS KEYPAD "+" TO EXPAND]
.text:00269696
.text:00269696 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269696
.text:00269696 ; Attributes: bp-based frame
.text:00269696
.text:00269696 sub_269696      proc near               ; CODE XREF: mainXapiStartup(x)p
.text:00269696
.text:00269696 var_34          = dword ptr -34h
.text:00269696 var_4           = dword ptr -4
.text:00269696
.text:00269696                 push    ebp
.text:00269697                 mov     ebp, esp
.text:00269699                 sub     esp, 34h
.text:0026969C                 push    ebx
.text:0026969D                 push    esi
.text:0026969E                 push    edi
.text:0026969F                 xor     ebx, ebx
.text:002696A1                 inc     ebx
.text:002696A2                 push    ebx
.text:002696A3                 xor     esi, esi
.text:002696A5                 push    offset off_56E280
.text:002696AA                 mov     [ebp+var_4], esi
.text:002696AD                 call    ds:dword_485EF0
.text:002696B3                 call    sub_26D021
.text:002696B8                 push    0Ch
.text:002696BA                 pop     ecx
.text:002696BB                 xor     eax, eax
.text:002696BD                 lea     edi, [ebp+var_34]
.text:002696C0                 rep stosd
.text:002696C2                 lea     eax, [ebp+var_34]
.text:002696C5                 push    eax
.text:002696C6                 xor     edi, edi
.text:002696C8                 push    edi
.text:002696C9                 mov     [ebp+var_34], 30h
.text:002696D0                 push    dword ptr ds:10138h
.text:002696D6                 push    dword ptr ds:10134h
.text:002696DC                 push    edi
.text:002696DD                 push    2
.text:002696DF                 call    sub_26BB33
.text:002696E4                 cmp     eax, edi
.text:002696E6                 mov     dword_5E7360, eax
.text:002696EB                 jz      short loc_26973D
.text:002696ED                 test    byte ptr ds:10124h, 8
.text:002696F4                 jnz     short loc_269718
.text:002696F6                 push    offset off_56DDBC
.text:002696FB                 call    _XapiValidateDiskPartition@4 ; XapiValidateDiskPartition(x)
.text:00269700                 test    eax, eax
.text:00269702                 jge     short loc_269718
.text:00269704                 push    2
.text:00269706
.text:00269706 loc_269706:                             ; CODE XREF: sub_269696+D2j
.text:00269706                 mov     eax, ebx
.text:00269708                 pop     ecx
.text:00269709
.text:00269709 loc_269709:                             ; CODE XREF: sub_269696+ABj
.text:00269709                                         ; sub_269696+DFj ...
.text:00269709                 push    [ebp+var_4]
.text:0026970C                 push    ecx
.text:0026970D                 push    eax
.text:0026970E                 call    _XapiBootToDash@12 ; XapiBootToDash(x,x,x)
.text:00269713
.text:00269713 loc_269713:                             ; CODE XREF: sub_269696+14Cj
.text:00269713                                         ; sub_269696+155j ...
.text:00269713                 pop     edi
.text:00269714                 pop     esi
.text:00269715                 pop     ebx
.text:00269716                 leave
.text:00269717                 retn
.text:00269718 ; ---------------------------------------------------------------------------
.text:00269718
.text:00269718 loc_269718:                             ; CODE XREF: sub_269696+5Ej
.text:00269718                                         ; sub_269696+6Cj
.text:00269718                 mov     eax, ds:dword_485EEC
.text:0026971D                 test    byte ptr [eax], 8
.text:00269720                 jnz     short loc_269743
.text:00269722                 push    offset off_56DDB4
.text:00269727                 push    offset off_56DDAC
.text:0026972C                 call    ds:dword_485E00
.text:00269732                 cmp     eax, edi
.text:00269734                 jge     short loc_269743
.text:00269736                 cmp     eax, 0C0000035h
.text:0026973B                 jz      short loc_269743
.text:0026973D
.text:0026973D loc_26973D:                             ; CODE XREF: sub_269696+55j
.text:0026973D                 mov     eax, ebx
.text:0026973F                 mov     ecx, ebx
.text:00269741                 jmp     short loc_269709
.text:00269743 ; ---------------------------------------------------------------------------
.text:00269743
.text:00269743 loc_269743:                             ; CODE XREF: sub_269696+8Aj
.text:00269743                                         ; sub_269696+9Ej ...
.text:00269743                 test    byte ptr ds:10124h, 18h
.text:0026974A                 jnz     short loc_269777
.text:0026974C                 mov     eax, ds:10118h
.text:00269751                 lea     ecx, [eax+0Ch]
.text:00269754                 push    ecx
.text:00269755                 push    dword ptr [eax+8]
.text:00269758                 call    _XapiSetupPerTitleDriveLetters@8 ; XapiSetupPerTitleDriveLetters(x,x)
.text:0026975D                 cmp     eax, edi
.text:0026975F                 jge     short loc_269777
.text:00269761                 cmp     eax, 0C000007Fh
.text:00269766                 push    2
.text:00269768                 jnz     short loc_269706
.text:0026976A                 pop     eax
.text:0026976B                 push    54h
.text:0026976D                 pop     ecx
.text:0026976E                 mov     [ebp+var_4], 10h
.text:00269775                 jmp     short loc_269709
.text:00269777 ; ---------------------------------------------------------------------------
.text:00269777
.text:00269777 loc_269777:                             ; CODE XREF: sub_269696+B4j
.text:00269777                                         ; sub_269696+C9j
.text:00269777                 mov     eax, ds:10124h
.text:0026977C                 test    al, 8
.text:0026977E                 jnz     short loc_26979A
.text:00269780                 test    al, bl
.text:00269782                 jz      short loc_26979A
.text:00269784                 and     eax, 2
.text:00269787                 push    eax
.text:00269788                 call    _XMountUtilityDrive@4 ; XMountUtilityDrive(x)
.text:0026978D                 test    eax, eax
.text:0026978F                 jnz     short loc_26979A
.text:00269791                 push    edi
.text:00269792                 push    2
.text:00269794                 push    ebx
.text:00269795                 call    _XapiBootToDash@12 ; XapiBootToDash(x,x,x)
.text:0026979A
.text:0026979A loc_26979A:                             ; CODE XREF: sub_269696+E8j
.text:0026979A                                         ; sub_269696+ECj ...
.text:0026979A                 mov     eax, ds:10118h
.text:0026979F                 mov     edi, [eax+0A4h]
.text:002697A5                 call    _XGetParentalControlSetting@0 ; XGetParentalControlSetting()
.text:002697AA                 cmp     edi, eax
.text:002697AC                 jnb     short loc_2697BB
.text:002697AE                 push    4
.text:002697B0                 mov     eax, ebx
.text:002697B2                 pop     ecx
.text:002697B3                 mov     [ebp+var_4], edi
.text:002697B6                 jmp     loc_269709
.text:002697BB ; ---------------------------------------------------------------------------
.text:002697BB
.text:002697BB loc_2697BB:                             ; CODE XREF: sub_269696+116j
.text:002697BB                 mov     eax, ds:dword_485EB0
.text:002697C0                 test    eax, eax
.text:002697C2                 jz      short loc_2697DB
.text:002697C4                 mov     eax, [eax]
.text:002697C6                 test    eax, eax
.text:002697C8                 jz      short loc_2697DB
.text:002697CA                 mov     esi, eax
.text:002697CC                 lea     eax, [esi+214h]
.text:002697D2                 test    [eax], bl
.text:002697D4                 jz      short loc_2697DB
.text:002697D6                 mov     eax, [eax+4]
.text:002697D9                 mov     [esi], eax
.text:002697DB
.text:002697DB loc_2697DB:                             ; CODE XREF: sub_269696+12Cj
.text:002697DB                                         ; sub_269696+132j ...
.text:002697DB                 call    sub_26A268
.text:002697E0                 test    esi, esi
.text:002697E2                 jz      loc_269713
.text:002697E8                 cmp     dword ptr [esi], 0FFFFFFFFh
.text:002697EB                 jnz     loc_269713
.text:002697F1                 mov     eax, ds:dword_485EB0
.text:002697F6                 and     dword ptr [eax], 0
.text:002697F9                 push    esi
.text:002697FA                 call    ds:dword_485E20
.text:00269800                 jmp     loc_269713
.text:00269800 sub_269696      endp
.text:00269800
.text:00269805 ; [00000324 BYTES: COLLAPSED FUNCTION unknown_libname_42. PRESS KEYPAD "+" TO EXPAND]
.text:00269B29
.text:00269B29 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269B29
.text:00269B29
.text:00269B29 sub_269B29      proc near               ; CODE XREF: sub_269EEE+28p
.text:00269B29                                         ; sub_269EEE+12Dp
.text:00269B29
.text:00269B29 arg_0           = dword ptr  8
.text:00269B29 arg_4           = dword ptr  0Ch
.text:00269B29 arg_8           = dword ptr  10h
.text:00269B29
.text:00269B29                 push    esi
.text:00269B2A                 push    [esp+arg_0]
.text:00269B2E                 mov     esi, [esp+4+arg_8]
.text:00269B32                 push    offset dword_4CE8D8 ; char *
.text:00269B37                 push    dword ptr [esi] ; size_t
.text:00269B39                 push    [esp+0Ch+arg_4] ; char *
.text:00269B3D                 call    __snprintf
.text:00269B42                 add     esp, 10h
.text:00269B45                 test    eax, eax
.text:00269B47                 jge     short loc_269B69
.text:00269B49                 mov     eax, [esp+arg_0]
.text:00269B4D                 lea     edx, [eax+1]
.text:00269B50
.text:00269B50 loc_269B50:                             ; CODE XREF: sub_269B29+2Cj
.text:00269B50                 mov     cl, [eax]
.text:00269B52                 inc     eax
.text:00269B53                 test    cl, cl
.text:00269B55                 jnz     short loc_269B50
.text:00269B57                 sub     eax, edx
.text:00269B59                 add     eax, 7
.text:00269B5C                 push    7Ah             ; dwErrCode
.text:00269B5E                 mov     [esi], eax
.text:00269B60                 call    _SetLastError@4 ; SetLastError(x)
.text:00269B65                 xor     eax, eax
.text:00269B67                 jmp     short loc_269B6F
.text:00269B69 ; ---------------------------------------------------------------------------
.text:00269B69
.text:00269B69 loc_269B69:                             ; CODE XREF: sub_269B29+1Ej
.text:00269B69                 inc     eax
.text:00269B6A                 mov     [esi], eax
.text:00269B6C                 xor     eax, eax
.text:00269B6E                 inc     eax
.text:00269B6F
.text:00269B6F loc_269B6F:                             ; CODE XREF: sub_269B29+3Ej
.text:00269B6F                 pop     esi
.text:00269B70                 retn    0Ch
.text:00269B70 sub_269B29      endp
.text:00269B70
.text:00269B73
.text:00269B73 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269B73
.text:00269B73 ; Attributes: bp-based frame
.text:00269B73
.text:00269B73 sub_269B73      proc near               ; CODE XREF: sub_26A070+Ap
.text:00269B73
.text:00269B73 var_10          = dword ptr -10h
.text:00269B73 var_8           = dword ptr -8
.text:00269B73
.text:00269B73                 push    ebp
.text:00269B74                 mov     ebp, esp
.text:00269B76                 sub     esp, 10h
.text:00269B79                 push    ebx
.text:00269B7A                 push    esi
.text:00269B7B                 mov     esi, ds:dword_485D98
.text:00269B81                 push    edi
.text:00269B82                 mov     edi, offset aDeviceHarddi_1 ; "\\Device\\Harddisk0\\Partition2\\"
.text:00269B87                 push    edi
.text:00269B88                 lea     eax, [ebp+var_10]
.text:00269B8B                 push    eax
.text:00269B8C                 xor     ebx, ebx
.text:00269B8E                 call    esi
.text:00269B90                 push    edi
.text:00269B91                 lea     eax, [ebp+var_8]
.text:00269B94                 push    eax
.text:00269B95                 call    esi
.text:00269B97                 dec     word ptr [ebp+var_8]
.text:00269B9B                 lea     eax, [ebp+var_10]
.text:00269B9E                 push    eax
.text:00269B9F                 call    _XapiValidateDiskPartition@4 ; XapiValidateDiskPartition(x)
.text:00269BA4                 mov     edi, eax
.text:00269BA6                 test    edi, edi
.text:00269BA8                 jl      short loc_269BC7
.text:00269BAA                 mov     esi, offset off_56DE34
.text:00269BAF                 push    esi
.text:00269BB0                 call    ds:dword_485E0C
.text:00269BB6                 lea     eax, [ebp+var_8]
.text:00269BB9                 push    eax
.text:00269BBA                 push    esi
.text:00269BBB                 call    ds:dword_485E00
.text:00269BC1                 mov     edi, eax
.text:00269BC3                 test    edi, edi
.text:00269BC5                 jge     short loc_269BEB
.text:00269BC7
.text:00269BC7 loc_269BC7:                             ; CODE XREF: sub_269B73+35j
.text:00269BC7                 mov     esi, ds:dword_485DD0
.text:00269BCD                 push    edi
.text:00269BCE                 call    esi
.text:00269BD0                 test    eax, eax
.text:00269BD2                 push    edi
.text:00269BD3                 jg      short loc_269BDB
.text:00269BD5                 call    esi
.text:00269BD7                 mov     ebx, eax
.text:00269BD9                 jmp     short loc_269BEB
.text:00269BDB ; ---------------------------------------------------------------------------
.text:00269BDB
.text:00269BDB loc_269BDB:                             ; CODE XREF: sub_269B73+60j
.text:00269BDB                 call    esi
.text:00269BDD                 mov     ebx, eax
.text:00269BDF                 and     ebx, 0FFFFh
.text:00269BE5                 or      ebx, 80070000h
.text:00269BEB
.text:00269BEB loc_269BEB:                             ; CODE XREF: sub_269B73+52j
.text:00269BEB                                         ; sub_269B73+66j
.text:00269BEB                 pop     edi
.text:00269BEC                 pop     esi
.text:00269BED                 mov     eax, ebx
.text:00269BEF                 pop     ebx
.text:00269BF0                 leave
.text:00269BF1                 retn
.text:00269BF1 sub_269B73      endp
.text:00269BF1
.text:00269BF2
.text:00269BF2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269BF2
.text:00269BF2 ; Attributes: bp-based frame
.text:00269BF2
.text:00269BF2 sub_269BF2      proc near               ; CODE XREF: sub_269EEE+150p
.text:00269BF2                                         ; sub_26A070+1Cp ...
.text:00269BF2
.text:00269BF2 var_188         = dword ptr -188h
.text:00269BF2 var_84          = dword ptr -84h
.text:00269BF2 var_70          = dword ptr -70h
.text:00269BF2 var_4           = dword ptr -4
.text:00269BF2 lpFileName      = dword ptr  8
.text:00269BF2 arg_4           = dword ptr  0Ch
.text:00269BF2
.text:00269BF2                 push    ebp
.text:00269BF3                 mov     ebp, esp
.text:00269BF5                 sub     esp, 188h
.text:00269BFB                 push    ebx
.text:00269BFC                 push    esi
.text:00269BFD                 push    edi
.text:00269BFE                 xor     esi, esi
.text:00269C00                 push    esi             ; hTemplateFile
.text:00269C01                 push    8000080h        ; dwFlagsAndAttributes
.text:00269C06                 push    3               ; dwCreationDisposition
.text:00269C08                 push    esi             ; lpSecurityAttributes
.text:00269C09                 push    esi             ; dwShareMode
.text:00269C0A                 push    80000000h       ; dwDesiredAccess
.text:00269C0F                 push    [ebp+lpFileName] ; lpFileName
.text:00269C12                 mov     [ebp+var_4], esi
.text:00269C15                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:00269C1A                 mov     edi, eax
.text:00269C1C                 cmp     edi, 0FFFFFFFFh
.text:00269C1F                 jz      short loc_269C87
.text:00269C21                 push    esi
.text:00269C22                 lea     eax, [ebp+lpFileName]
.text:00269C25                 push    eax
.text:00269C26                 mov     ebx, 178h
.text:00269C2B                 push    ebx
.text:00269C2C                 lea     eax, [ebp+var_188]
.text:00269C32                 push    eax
.text:00269C33                 push    edi
.text:00269C34                 call    sub_266EA1
.text:00269C39                 test    eax, eax
.text:00269C3B                 jz      short loc_269C87
.text:00269C3D                 cmp     [ebp+lpFileName], ebx
.text:00269C40                 jnz     short loc_269C80
.text:00269C42                 mov     eax, [ebp+var_70]
.text:00269C45                 cmp     eax, [ebp+var_84]
.text:00269C4B                 jb      short loc_269C80
.text:00269C4D                 sub     eax, [ebp+var_84]
.text:00269C53                 push    esi             ; dwMoveMethod
.text:00269C54                 push    esi             ; lpDistanceToMoveHigh
.text:00269C55                 push    eax             ; lDistanceToMove
.text:00269C56                 push    edi             ; hFile
.text:00269C57                 mov     [ebp+lpFileName], eax
.text:00269C5A                 call    _SetFilePointer@16 ; SetFilePointer(x,x,x,x)
.text:00269C5F                 test    eax, eax
.text:00269C61                 jz      short loc_269C87
.text:00269C63                 push    esi
.text:00269C64                 lea     eax, [ebp+lpFileName]
.text:00269C67                 push    eax
.text:00269C68                 mov     esi, 1D0h
.text:00269C6D                 push    esi
.text:00269C6E                 push    [ebp+arg_4]
.text:00269C71                 push    edi
.text:00269C72                 call    sub_266EA1
.text:00269C77                 test    eax, eax
.text:00269C79                 jz      short loc_269C87
.text:00269C7B                 cmp     [ebp+lpFileName], esi
.text:00269C7E                 jz      short loc_269CA9
.text:00269C80
.text:00269C80 loc_269C80:                             ; CODE XREF: sub_269BF2+4Ej
.text:00269C80                                         ; sub_269BF2+59j
.text:00269C80                 push    0Dh             ; dwErrCode
.text:00269C82                 call    _SetLastError@4 ; SetLastError(x)
.text:00269C87
.text:00269C87 loc_269C87:                             ; CODE XREF: sub_269BF2+2Dj
.text:00269C87                                         ; sub_269BF2+49j ...
.text:00269C87                 call    _GetLastError@0 ; GetLastError()
.text:00269C8C                 test    eax, eax
.text:00269C8E                 jg      short loc_269C97
.text:00269C90                 call    _GetLastError@0 ; GetLastError()
.text:00269C95                 jmp     short loc_269CA6
.text:00269C97 ; ---------------------------------------------------------------------------
.text:00269C97
.text:00269C97 loc_269C97:                             ; CODE XREF: sub_269BF2+9Cj
.text:00269C97                 call    _GetLastError@0 ; GetLastError()
.text:00269C9C                 and     eax, 0FFFFh
.text:00269CA1                 or      eax, 80070000h
.text:00269CA6
.text:00269CA6 loc_269CA6:                             ; CODE XREF: sub_269BF2+A3j
.text:00269CA6                 mov     [ebp+var_4], eax
.text:00269CA9
.text:00269CA9 loc_269CA9:                             ; CODE XREF: sub_269BF2+8Cj
.text:00269CA9                 cmp     edi, 0FFFFFFFFh
.text:00269CAC                 jz      short loc_269CB4
.text:00269CAE                 push    edi
.text:00269CAF                 call    sub_267BC1
.text:00269CB4
.text:00269CB4 loc_269CB4:                             ; CODE XREF: sub_269BF2+BAj
.text:00269CB4                 mov     eax, [ebp+var_4]
.text:00269CB7                 pop     edi
.text:00269CB8                 pop     esi
.text:00269CB9                 pop     ebx
.text:00269CBA                 leave
.text:00269CBB                 retn    8
.text:00269CBB sub_269BF2      endp
.text:00269CBB
.text:00269CBE
.text:00269CBE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269CBE
.text:00269CBE ; Attributes: bp-based frame
.text:00269CBE
.text:00269CBE sub_269CBE      proc near               ; CODE XREF: sub_26A070+6Cp
.text:00269CBE
.text:00269CBE var_428         = dword ptr -428h
.text:00269CBE var_220         = dword ptr -220h
.text:00269CBE var_18          = dword ptr -18h
.text:00269CBE var_14          = dword ptr -14h
.text:00269CBE var_10          = dword ptr -10h
.text:00269CBE var_C           = dword ptr -0Ch
.text:00269CBE var_8           = dword ptr -8
.text:00269CBE var_4           = dword ptr -4
.text:00269CBE arg_0           = dword ptr  8
.text:00269CBE arg_4           = dword ptr  0Ch
.text:00269CBE arg_8           = dword ptr  10h
.text:00269CBE
.text:00269CBE                 push    ebp
.text:00269CBF                 mov     ebp, esp
.text:00269CC1                 sub     esp, 428h
.text:00269CC7                 and     [ebp+var_18], 0
.text:00269CCB                 push    esi
.text:00269CCC                 lea     eax, [ebp+var_18]
.text:00269CCF                 push    eax
.text:00269CD0                 lea     eax, [ebp+var_4]
.text:00269CD3                 push    eax
.text:00269CD4                 mov     byte ptr [ebp+var_220], 0
.text:00269CDB                 mov     [ebp+var_10], 40h
.text:00269CE2                 mov     [ebp+var_14], offset off_56DDAC
.text:00269CE9                 call    ds:dword_485E08
.text:00269CEF                 test    eax, eax
.text:00269CF1                 mov     esi, 208h
.text:00269CF6                 jl      short loc_269D3F
.text:00269CF8                 and     word ptr [ebp+var_C], 0
.text:00269CFD                 push    edi
.text:00269CFE                 lea     eax, [ebp+var_428]
.text:00269D04                 mov     [ebp+var_8], eax
.text:00269D07                 push    0
.text:00269D09                 lea     eax, [ebp+var_C]
.text:00269D0C                 push    eax
.text:00269D0D                 push    [ebp+var_4]
.text:00269D10                 mov     word ptr [ebp+var_C+2], si
.text:00269D14                 call    ds:dword_485E04
.text:00269D1A                 push    [ebp+var_4]
.text:00269D1D                 mov     edi, eax
.text:00269D1F                 call    ds:dword_485DD4
.text:00269D25                 test    edi, edi
.text:00269D27                 pop     edi
.text:00269D28                 jl      short loc_269D3F
.text:00269D2A                 movzx   eax, word ptr [ebp+var_C]
.text:00269D2E                 inc     eax
.text:00269D2F                 cmp     eax, esi
.text:00269D31                 jbe     short loc_269D35
.text:00269D33                 mov     eax, esi
.text:00269D35
.text:00269D35 loc_269D35:                             ; CODE XREF: sub_269CBE+73j
.text:00269D35                 push    eax
.text:00269D36                 lea     eax, [ebp+var_428]
.text:00269D3C                 push    eax
.text:00269D3D                 jmp     short loc_269D45
.text:00269D3F ; ---------------------------------------------------------------------------
.text:00269D3F
.text:00269D3F loc_269D3F:                             ; CODE XREF: sub_269CBE+38j
.text:00269D3F                                         ; sub_269CBE+6Aj
.text:00269D3F                 push    esi
.text:00269D40                 push    offset dword_4CE8E4
.text:00269D45
.text:00269D45 loc_269D45:                             ; CODE XREF: sub_269CBE+7Fj
.text:00269D45                 lea     eax, [ebp+var_220]
.text:00269D4B                 push    eax
.text:00269D4C                 call    sub_268CE1
.text:00269D51                 push    [ebp+arg_8]
.text:00269D54                 mov     eax, ds:10118h
.text:00269D59                 push    dword ptr [eax+8]
.text:00269D5C                 lea     eax, [ebp+var_220]
.text:00269D62                 push    [ebp+arg_4]
.text:00269D65                 push    eax
.text:00269D66                 mov     eax, [ebp+arg_0]
.text:00269D69                 add     eax, 3
.text:00269D6C                 push    eax
.text:00269D6D                 call    sub_267D8C
.text:00269D72                 pop     esi
.text:00269D73                 leave
.text:00269D74                 retn    0Ch
.text:00269D74 sub_269CBE      endp
.text:00269D74
.text:00269D77
.text:00269D77 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269D77
.text:00269D77 ; Attributes: bp-based frame
.text:00269D77
.text:00269D77 sub_269D77      proc near               ; CODE XREF: sub_26A268+34p
.text:00269D77
.text:00269D77 arg_0           = dword ptr  8
.text:00269D77 arg_4           = dword ptr  0Ch
.text:00269D77 arg_8           = dword ptr  10h
.text:00269D77
.text:00269D77                 push    ebp
.text:00269D78                 mov     ebp, esp
.text:00269D7A                 mov     edx, [ebp+arg_4]
.text:00269D7D                 or      dword ptr [edx], 0FFFFFFFFh
.text:00269D80                 push    esi
.text:00269D81                 mov     esi, [ebp+arg_0]
.text:00269D84                 xor     eax, eax
.text:00269D86                 mov     [esi], eax
.text:00269D88                 mov     ecx, ds:dword_485EB0
.text:00269D8E                 cmp     ecx, eax
.text:00269D90                 push    edi
.text:00269D91                 jz      short loc_269DBD
.text:00269D93                 mov     ecx, [ecx]
.text:00269D95                 cmp     ecx, eax
.text:00269D97                 jz      short loc_269DBD
.text:00269D99                 mov     edi, ecx
.text:00269D9B                 lea     ecx, [edi+214h]
.text:00269DA1                 test    byte ptr [ecx], 1
.text:00269DA4                 jz      short loc_269DB7
.text:00269DA6                 add     ecx, 4
.text:00269DA9                 mov     eax, [ecx]
.text:00269DAB                 mov     [edx], eax
.text:00269DAD                 add     ecx, 4
.text:00269DB0                 xor     eax, eax
.text:00269DB2                 mov     [esi], ecx
.text:00269DB4                 inc     eax
.text:00269DB5                 jmp     short loc_269DC0
.text:00269DB7 ; ---------------------------------------------------------------------------
.text:00269DB7
.text:00269DB7 loc_269DB7:                             ; CODE XREF: sub_269D77+2Dj
.text:00269DB7                 mov     ecx, [edi]
.text:00269DB9                 mov     [edx], ecx
.text:00269DBB                 jmp     short loc_269DC0
.text:00269DBD ; ---------------------------------------------------------------------------
.text:00269DBD
.text:00269DBD loc_269DBD:                             ; CODE XREF: sub_269D77+1Aj
.text:00269DBD                                         ; sub_269D77+20j
.text:00269DBD                 mov     edi, [ebp+arg_4]
.text:00269DC0
.text:00269DC0 loc_269DC0:                             ; CODE XREF: sub_269D77+3Ej
.text:00269DC0                                         ; sub_269D77+44j
.text:00269DC0                 cmp     dword ptr [edx], 0FFFFFFFFh
.text:00269DC3                 jz      short loc_269DD5
.text:00269DC5                 lea     esi, [edi+400h]
.text:00269DCB                 mov     edi, [ebp+arg_8]
.text:00269DCE                 mov     ecx, 300h
.text:00269DD3                 rep movsd
.text:00269DD5
.text:00269DD5 loc_269DD5:                             ; CODE XREF: sub_269D77+4Cj
.text:00269DD5                 pop     edi
.text:00269DD6                 pop     esi
.text:00269DD7                 pop     ebp
.text:00269DD8                 retn    0Ch
.text:00269DD8 sub_269D77      endp
.text:00269DD8
.text:00269DDB
.text:00269DDB ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269DDB
.text:00269DDB ; Attributes: bp-based frame
.text:00269DDB
.text:00269DDB sub_269DDB      proc near               ; CODE XREF: sub_26A0E7+53p
.text:00269DDB                                         ; sub_26A268+4Dp ...
.text:00269DDB
.text:00269DDB var_21C         = dword ptr -21Ch
.text:00269DDB var_14          = dword ptr -14h
.text:00269DDB var_10          = dword ptr -10h
.text:00269DDB var_C           = dword ptr -0Ch
.text:00269DDB var_8           = dword ptr -8
.text:00269DDB var_4           = dword ptr -4
.text:00269DDB arg_0           = dword ptr  8
.text:00269DDB arg_4           = dword ptr  0Ch
.text:00269DDB
.text:00269DDB                 push    ebp
.text:00269DDC                 mov     ebp, esp
.text:00269DDE                 sub     esp, 21Ch
.text:00269DE4                 and     [ebp+var_14], 0
.text:00269DE8                 push    edi
.text:00269DE9                 mov     edi, [ebp+arg_0]
.text:00269DEC                 lea     eax, [ebp+var_14]
.text:00269DEF                 push    eax
.text:00269DF0                 lea     eax, [ebp+arg_0]
.text:00269DF3                 push    eax
.text:00269DF4                 mov     byte ptr [edi], 0
.text:00269DF7                 mov     [ebp+var_C], 40h
.text:00269DFE                 mov     [ebp+var_10], offset off_56DDAC
.text:00269E05                 call    ds:dword_485E08
.text:00269E0B                 test    eax, eax
.text:00269E0D                 jl      short loc_269E5A
.text:00269E0F                 and     word ptr [ebp+var_8], 0
.text:00269E14                 push    esi
.text:00269E15                 lea     eax, [ebp+var_21C]
.text:00269E1B                 mov     [ebp+var_4], eax
.text:00269E1E                 push    0
.text:00269E20                 lea     eax, [ebp+var_8]
.text:00269E23                 push    eax
.text:00269E24                 push    [ebp+arg_0]
.text:00269E27                 mov     word ptr [ebp+var_8+2], 208h
.text:00269E2D                 call    ds:dword_485E04
.text:00269E33                 push    [ebp+arg_0]
.text:00269E36                 mov     esi, eax
.text:00269E38                 call    ds:dword_485DD4
.text:00269E3E                 test    esi, esi
.text:00269E40                 pop     esi
.text:00269E41                 jl      short loc_269E5A
.text:00269E43                 movzx   eax, word ptr [ebp+var_8]
.text:00269E47                 inc     eax
.text:00269E48                 cmp     [ebp+arg_4], eax
.text:00269E4B                 jnb     short loc_269E50
.text:00269E4D                 mov     eax, [ebp+arg_4]
.text:00269E50
.text:00269E50 loc_269E50:                             ; CODE XREF: sub_269DDB+70j
.text:00269E50                 push    eax
.text:00269E51                 lea     eax, [ebp+var_21C]
.text:00269E57                 push    eax
.text:00269E58                 jmp     short loc_269E62
.text:00269E5A ; ---------------------------------------------------------------------------
.text:00269E5A
.text:00269E5A loc_269E5A:                             ; CODE XREF: sub_269DDB+32j
.text:00269E5A                                         ; sub_269DDB+66j
.text:00269E5A                 push    [ebp+arg_4]
.text:00269E5D                 push    offset dword_4CE8E4
.text:00269E62
.text:00269E62 loc_269E62:                             ; CODE XREF: sub_269DDB+7Dj
.text:00269E62                 push    edi
.text:00269E63                 call    sub_268CE1
.text:00269E68                 pop     edi
.text:00269E69                 leave
.text:00269E6A                 retn    8
.text:00269E6A sub_269DDB      endp
.text:00269E6A
.text:00269E6D
.text:00269E6D ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269E6D
.text:00269E6D ; Attributes: bp-based frame
.text:00269E6D
.text:00269E6D sub_269E6D      proc near               ; CODE XREF: sub_26A0E7+147p
.text:00269E6D                                         ; sub_4421A8+2C4p
.text:00269E6D
.text:00269E6D arg_0           = dword ptr  8
.text:00269E6D arg_4           = dword ptr  0Ch
.text:00269E6D
.text:00269E6D                 push    ebp
.text:00269E6E                 mov     ebp, esp
.text:00269E70                 mov     eax, ds:dword_485EB0
.text:00269E75                 push    esi
.text:00269E76                 mov     esi, [eax]
.text:00269E78                 mov     eax, [ebp+arg_0]
.text:00269E7B                 push    edi
.text:00269E7C                 lea     ecx, [eax+1]
.text:00269E7F
.text:00269E7F loc_269E7F:                             ; CODE XREF: sub_269E6D+17j
.text:00269E7F                 mov     dl, [eax]
.text:00269E81                 inc     eax
.text:00269E82                 test    dl, dl
.text:00269E84                 jnz     short loc_269E7F
.text:00269E86                 sub     eax, ecx
.text:00269E88                 lea     ecx, [eax+1]
.text:00269E8B                 mov     eax, [ebp+arg_4]
.text:00269E8E                 lea     edi, [eax+1]
.text:00269E91
.text:00269E91 loc_269E91:                             ; CODE XREF: sub_269E6D+29j
.text:00269E91                 mov     dl, [eax]
.text:00269E93                 inc     eax
.text:00269E94                 test    dl, dl
.text:00269E96                 jnz     short loc_269E91
.text:00269E98                 sub     eax, edi
.text:00269E9A                 lea     eax, [eax+ecx+8]
.text:00269E9E                 cmp     eax, 1ECh
.text:00269EA3                 jnb     short loc_269EE8
.text:00269EA5                 lea     eax, [esi+214h]
.text:00269EAB                 mov     word ptr [eax], 1
.text:00269EB0                 inc     eax
.text:00269EB1                 inc     eax
.text:00269EB2                 mov     [eax], cx
.text:00269EB5                 mov     edx, [esi]
.text:00269EB7                 inc     eax
.text:00269EB8                 inc     eax
.text:00269EB9                 mov     [eax], edx
.text:00269EBB                 add     eax, 4
.text:00269EBE                 cmp     dword ptr [esi], 0FFFFFFFFh
.text:00269EC1                 jnz     short loc_269EC6
.text:00269EC3
.text:00269EC3 loc_269EC3:                             ; DATA XREF: _rand+Eo
.text:00269EC3                 and     dword ptr [esi], 0
.text:00269EC6
.text:00269EC6 loc_269EC6:                             ; CODE XREF: sub_269E6D+54j
.text:00269EC6                 mov     esi, [ebp+arg_0]
.text:00269EC9                 mov     edi, eax
.text:00269ECB                 sub     edi, esi
.text:00269ECD
.text:00269ECD loc_269ECD:                             ; CODE XREF: sub_269E6D+68j
.text:00269ECD                 mov     dl, [esi]
.text:00269ECF                 mov     [edi+esi], dl
.text:00269ED2                 inc     esi
.text:00269ED3                 test    dl, dl
.text:00269ED5                 jnz     short loc_269ECD
.text:00269ED7                 mov     edx, [ebp+arg_4]
.text:00269EDA                 add     eax, ecx
.text:00269EDC                 sub     eax, edx
.text:00269EDE
.text:00269EDE loc_269EDE:                             ; CODE XREF: sub_269E6D+79j
.text:00269EDE                 mov     cl, [edx]
.text:00269EE0                 mov     [eax+edx], cl
.text:00269EE3                 inc     edx
.text:00269EE4                 test    cl, cl
.text:00269EE6                 jnz     short loc_269EDE
.text:00269EE8
.text:00269EE8 loc_269EE8:                             ; CODE XREF: sub_269E6D+36j
.text:00269EE8                 pop     edi
.text:00269EE9                 pop     esi
.text:00269EEA                 pop     ebp
.text:00269EEB                 retn    8
.text:00269EEB sub_269E6D      endp
.text:00269EEB
.text:00269EEE
.text:00269EEE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00269EEE
.text:00269EEE ; Attributes: bp-based frame fpd=68h
.text:00269EEE
.text:00269EEE sub_269EEE      proc near               ; CODE XREF: sub_26A268+FFp
.text:00269EEE                                         ; sub_4424B5+60p
.text:00269EEE
.text:00269EEE var_45C         = dword ptr -45Ch
.text:00269EEE var_454         = dword ptr -454h
.text:00269EEE FileName        = byte ptr -270h
.text:00269EEE var_16C         = dword ptr -16Ch
.text:00269EEE var_F8          = dword ptr -0F8h
.text:00269EEE var_D8          = byte ptr -0D8h
.text:00269EEE var_C4          = dword ptr -0C4h
.text:00269EEE var_C0          = dword ptr -0C0h
.text:00269EEE var_BC          = dword ptr -0BCh
.text:00269EEE var_70          = dword ptr -70h
.text:00269EEE var_6C          = dword ptr -6Ch
.text:00269EEE var_2C          = dword ptr -2Ch
.text:00269EEE var_18          = dword ptr -18h
.text:00269EEE var_10          = dword ptr -10h
.text:00269EEE var_4           = dword ptr -4
.text:00269EEE arg_0           = dword ptr  8
.text:00269EEE arg_4           = dword ptr  0Ch
.text:00269EEE arg_8           = dword ptr  10h
.text:00269EEE
.text:00269EEE                 push    ebp
.text:00269EEF                 lea     ebp, [esp-68h]
.text:00269EF3                 sub     esp, 45Ch
.text:00269EF9                 push    ebx
.text:00269EFA                 push    esi
.text:00269EFB                 push    edi
.text:00269EFC                 lea     eax, [ebp+68h+var_4]
.text:00269EFF                 push    eax
.text:00269F00                 lea     eax, [ebp+68h+FileName]
.text:00269F06                 push    eax
.text:00269F07                 push    offset aContentmeta_xb ; "contentmeta.xbx"
.text:00269F0C                 or      ebx, 0FFFFFFFFh
.text:00269F0F                 mov     [ebp+68h+var_4], 104h
.text:00269F16                 call    sub_269B29
.text:00269F1B                 test    eax, eax
.text:00269F1D                 jz      loc_26A054
.text:00269F23                 xor     eax, eax
.text:00269F25                 push    eax             ; hTemplateFile
.text:00269F26                 push    eax             ; dwFlagsAndAttributes
.text:00269F27                 push    3               ; dwCreationDisposition
.text:00269F29                 push    eax             ; lpSecurityAttributes
.text:00269F2A                 push    1               ; dwShareMode
.text:00269F2C                 push    80000000h       ; dwDesiredAccess
.text:00269F31                 lea     eax, [ebp+68h+FileName]
.text:00269F37                 push    eax             ; lpFileName
.text:00269F38                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:00269F3D                 mov     ebx, eax
.text:00269F3F                 cmp     ebx, 0FFFFFFFFh
.text:00269F42                 jz      loc_26A054
.text:00269F48                 lea     eax, [ebp+68h+var_F8]
.text:00269F4E                 push    eax
.text:00269F4F                 push    1
.text:00269F51                 push    [ebp+68h+arg_4]
.text:00269F54                 push    ebx
.text:00269F55                 call    sub_26D256
.text:00269F5A                 test    eax, eax
.text:00269F5C                 jz      loc_26A054
.text:00269F62                 test    [ebp+68h+var_D8], 1
.text:00269F66                 jz      loc_26A054
.text:00269F6C                 xor     eax, eax
.text:00269F6E                 lea     edi, [ebp+68h+var_18]
.text:00269F71                 stosd
.text:00269F72                 stosd
.text:00269F73                 stosd
.text:00269F74                 stosd
.text:00269F75                 push    44h
.text:00269F77                 stosd
.text:00269F78                 mov     eax, [ebp+68h+var_C4]
.text:00269F7B                 pop     esi
.text:00269F7C                 cmp     [ebp+68h+var_C0], esi
.text:00269F7F                 mov     [ebp+68h+var_10], eax
.text:00269F82                 jnz     loc_26A054
.text:00269F88                 lea     eax, [ebp+68h+var_18]
.text:00269F8B                 push    eax
.text:00269F8C                 lea     eax, [ebp+68h+var_4]
.text:00269F8F                 push    eax
.text:00269F90                 push    esi
.text:00269F91                 lea     eax, [ebp+68h+var_70]
.text:00269F94                 push    eax
.text:00269F95                 push    ebx
.text:00269F96                 call    sub_266EA1
.text:00269F9B                 test    eax, eax
.text:00269F9D                 jz      loc_26A054
.text:00269FA3                 cmp     [ebp+68h+var_4], esi
.text:00269FA6                 jnz     loc_26A054
.text:00269FAC                 lea     eax, [ebp+68h+var_16C]
.text:00269FB2                 push    eax
.text:00269FB3                 call    sub_26F958
.text:00269FB8                 push    esi
.text:00269FB9                 lea     eax, [ebp+68h+var_70]
.text:00269FBC                 push    eax
.text:00269FBD                 lea     eax, [ebp+68h+var_16C]
.text:00269FC3                 push    eax
.text:00269FC4                 call    sub_26F952
.text:00269FC9                 lea     eax, [ebp+68h+var_2C]
.text:00269FCC                 push    eax
.text:00269FCD                 lea     eax, [ebp+68h+var_16C]
.text:00269FD3                 push    eax
.text:00269FD4                 call    sub_26F95E
.text:00269FD9                 push    5
.text:00269FDB                 pop     ecx
.text:00269FDC                 lea     edi, [ebp+68h+var_BC]
.text:00269FDF                 lea     esi, [ebp+68h+var_2C]
.text:00269FE2                 xor     eax, eax
.text:00269FE4                 repe cmpsd
.text:00269FE6                 jnz     short loc_26A054
.text:00269FE8                 mov     ecx, [ebp+68h+var_70]
.text:00269FEB                 cmp     ecx, 10h
.text:00269FEE                 ja      short loc_26A054
.text:00269FF0                 test    ecx, ecx
.text:00269FF2                 jbe     short loc_26A002
.text:00269FF4
.text:00269FF4 loc_269FF4:                             ; CODE XREF: sub_269EEE+112j
.text:00269FF4                 mov     edx, [ebp+eax*4+68h+var_6C]
.text:00269FF8                 cmp     edx, [ebp+68h+arg_8]
.text:00269FFB                 jz      short loc_26A002
.text:00269FFD                 inc     eax
.text:00269FFE                 cmp     eax, ecx
.text:0026A000                 jb      short loc_269FF4
.text:0026A002
.text:0026A002 loc_26A002:                             ; CODE XREF: sub_269EEE+104j
.text:0026A002                                         ; sub_269EEE+10Dj
.text:0026A002                 cmp     eax, ecx
.text:0026A004                 jz      short loc_26A054
.text:0026A006                 lea     eax, [ebp+68h+var_4]
.text:0026A009                 push    eax
.text:0026A00A                 lea     eax, [ebp+68h+FileName]
.text:0026A010                 push    eax
.text:0026A011                 push    [ebp+68h+arg_0]
.text:0026A014                 mov     [ebp+68h+var_4], 104h
.text:0026A01B                 call    sub_269B29
.text:0026A020                 test    eax, eax
.text:0026A022                 jnz     short loc_26A030
.text:0026A024                 call    _GetLastError@0 ; GetLastError()
.text:0026A029                 call    _GetLastError@0 ; GetLastError()
.text:0026A02E                 jmp     short loc_26A054
.text:0026A030 ; ---------------------------------------------------------------------------
.text:0026A030
.text:0026A030 loc_26A030:                             ; CODE XREF: sub_269EEE+134j
.text:0026A030                 lea     eax, [ebp+68h+var_45C]
.text:0026A036                 push    eax
.text:0026A037                 lea     eax, [ebp+68h+FileName]
.text:0026A03D                 push    eax
.text:0026A03E                 call    sub_269BF2
.text:0026A043                 mov     esi, eax
.text:0026A045                 test    esi, esi
.text:0026A047                 jl      short loc_26A054
.text:0026A049                 mov     eax, [ebp+68h+arg_4]
.text:0026A04C                 cmp     [ebp+68h+var_454], eax
.text:0026A052                 jz      short loc_26A059
.text:0026A054
.text:0026A054 loc_26A054:                             ; CODE XREF: sub_269EEE+2Fj
.text:0026A054                                         ; sub_269EEE+54j ...
.text:0026A054                 mov     esi, 8007000Dh
.text:0026A059
.text:0026A059 loc_26A059:                             ; CODE XREF: sub_269EEE+164j
.text:0026A059                 cmp     ebx, 0FFFFFFFFh
.text:0026A05C                 jz      short loc_26A064
.text:0026A05E                 push    ebx
.text:0026A05F                 call    sub_267BC1
.text:0026A064
.text:0026A064 loc_26A064:                             ; CODE XREF: sub_269EEE+16Ej
.text:0026A064                 pop     edi
.text:0026A065                 mov     eax, esi
.text:0026A067                 pop     esi
.text:0026A068                 pop     ebx
.text:0026A069                 add     ebp, 68h
.text:0026A06C                 leave
.text:0026A06D                 retn    10h
.text:0026A06D sub_269EEE      endp
.text:0026A06D
.text:0026A070
.text:0026A070 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A070
.text:0026A070 ; Attributes: bp-based frame
.text:0026A070
.text:0026A070 sub_26A070      proc near               ; CODE XREF: sub_4421A8+AEp
.text:0026A070
.text:0026A070 var_1EC         = dword ptr -1ECh
.text:0026A070 var_140         = dword ptr -140h
.text:0026A070 arg_0           = dword ptr  8
.text:0026A070
.text:0026A070                 push    ebp
.text:0026A071                 mov     ebp, esp
.text:0026A073                 sub     esp, 1ECh
.text:0026A079                 push    edi
.text:0026A07A                 call    sub_269B73
.text:0026A07F                 lea     eax, [ebp+var_1EC]
.text:0026A085                 push    eax
.text:0026A086                 mov     edi, offset aDDashupdate_xb ; "d:\\dashupdate.xbe"
.text:0026A08B                 push    edi
.text:0026A08C                 call    sub_269BF2
.text:0026A091                 test    eax, eax
.text:0026A093                 jl      short loc_26A0E2
.text:0026A095                 push    esi
.text:0026A096                 mov     esi, [ebp+var_140]
.text:0026A09C                 lea     eax, [ebp+var_1EC]
.text:0026A0A2                 push    eax
.text:0026A0A3                 push    offset aYXboxdash_xbe ; "y:\\xboxdash.xbe"
.text:0026A0A8                 call    sub_269BF2
.text:0026A0AD                 test    eax, eax
.text:0026A0AF                 jl      short loc_26A0D6
.text:0026A0B1                 cmp     [ebp+var_140], esi
.text:0026A0B7                 jb      short loc_26A0D6
.text:0026A0B9                 lea     eax, [ebp+var_1EC]
.text:0026A0BF                 push    eax
.text:0026A0C0                 push    offset aYXodashXonline ; "y:\\XODash\\xonlinedash.xbe"
.text:0026A0C5                 call    sub_269BF2
.text:0026A0CA                 test    eax, eax
.text:0026A0CC                 jl      short loc_26A0D6
.text:0026A0CE                 cmp     [ebp+var_140], esi
.text:0026A0D4                 jnb     short loc_26A0E1
.text:0026A0D6
.text:0026A0D6 loc_26A0D6:                             ; CODE XREF: sub_26A070+3Fj
.text:0026A0D6                                         ; sub_26A070+47j ...
.text:0026A0D6                 push    [ebp+arg_0]
.text:0026A0D9                 push    1
.text:0026A0DB                 push    edi
.text:0026A0DC                 call    sub_269CBE
.text:0026A0E1
.text:0026A0E1 loc_26A0E1:                             ; CODE XREF: sub_26A070+64j
.text:0026A0E1                 pop     esi
.text:0026A0E2
.text:0026A0E2 loc_26A0E2:                             ; CODE XREF: sub_26A070+23j
.text:0026A0E2                 pop     edi
.text:0026A0E3                 leave
.text:0026A0E4                 retn    4
.text:0026A0E4 sub_26A070      endp
.text:0026A0E4
.text:0026A0E7
.text:0026A0E7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A0E7
.text:0026A0E7 ; Attributes: bp-based frame
.text:0026A0E7
.text:0026A0E7 sub_26A0E7      proc near               ; CODE XREF: sub_267C05+2Bp
.text:0026A0E7                                         ; sub_26A268+123p
.text:0026A0E7
.text:0026A0E7 var_2D4         = dword ptr -2D4h
.text:0026A0E7 var_16C         = byte ptr -16Ch
.text:0026A0E7 var_4           = dword ptr -4
.text:0026A0E7 arg_0           = dword ptr  8
.text:0026A0E7 arg_4           = dword ptr  0Ch
.text:0026A0E7 arg_8           = byte ptr  10h
.text:0026A0E7 arg_C           = dword ptr  14h
.text:0026A0E7
.text:0026A0E7                 push    ebp
.text:0026A0E8                 mov     ebp, esp
.text:0026A0EA                 sub     esp, 2D4h
.text:0026A0F0                 mov     ecx, ds:10118h
.text:0026A0F6                 push    esi
.text:0026A0F7                 mov     esi, [ebp+arg_0]
.text:0026A0FA                 xor     eax, eax
.text:0026A0FC                 cmp     esi, eax
.text:0026A0FE                 jnz     short loc_26A11F
.text:0026A100                 push    [ebp+arg_4]
.text:0026A103                 push    dword ptr [ecx+8]
.text:0026A106                 xor     ecx, ecx
.text:0026A108                 cmp     [ebp+arg_4], eax
.text:0026A10B                 setnz   cl
.text:0026A10E                 lea     ecx, [ecx+ecx-1]
.text:0026A112                 push    ecx
.text:0026A113                 push    eax
.text:0026A114                 push    eax
.text:0026A115                 call    sub_267D8C
.text:0026A11A                 jmp     loc_26A263
.text:0026A11F ; ---------------------------------------------------------------------------
.text:0026A11F
.text:0026A11F loc_26A11F:                             ; CODE XREF: sub_26A0E7+17j
.text:0026A11F                 mov     ecx, [ecx+8]
.text:0026A122                 push    ebx
.text:0026A123                 push    edi
.text:0026A124                 mov     [ebp+var_4], eax
.text:0026A127                 mov     edi, 168h
.text:0026A12C                 push    edi
.text:0026A12D                 lea     eax, [ebp+var_2D4]
.text:0026A133                 xor     ebx, ebx
.text:0026A135                 push    eax
.text:0026A136                 mov     [ebp+arg_0], ecx
.text:0026A139                 inc     ebx
.text:0026A13A                 call    sub_269DDB
.text:0026A13F                 mov     al, [esi]
.text:0026A141                 cmp     al, 44h
.text:0026A143                 mov     dl, 5Ch
.text:0026A145                 jz      short loc_26A14B
.text:0026A147                 cmp     al, 64h
.text:0026A149                 jnz     short loc_26A16D
.text:0026A14B
.text:0026A14B loc_26A14B:                             ; CODE XREF: sub_26A0E7+5Ej
.text:0026A14B                 cmp     byte ptr [esi+1], 3Ah
.text:0026A14F                 jnz     short loc_26A16D
.text:0026A151                 cmp     [esi+2], dl
.text:0026A154                 jnz     short loc_26A16D
.text:0026A156                 lea     eax, [esi+3]
.text:0026A159                 mov     esi, eax
.text:0026A15B                 lea     ecx, [ebp+var_2D4]
.text:0026A161                 mov     [ebp+var_4], 1
.text:0026A168                 jmp     loc_26A1FB
.text:0026A16D ; ---------------------------------------------------------------------------
.text:0026A16D
.text:0026A16D loc_26A16D:                             ; CODE XREF: sub_26A0E7+62j
.text:0026A16D                                         ; sub_26A0E7+68j ...
.text:0026A16D                 cmp     al, 54h
.text:0026A16F                 jz      short loc_26A175
.text:0026A171                 cmp     al, 74h
.text:0026A173                 jnz     short loc_26A1A6
.text:0026A175
.text:0026A175 loc_26A175:                             ; CODE XREF: sub_26A0E7+88j
.text:0026A175                 cmp     byte ptr [esi+1], 3Ah
.text:0026A179                 jnz     short loc_26A1A6
.text:0026A17B                 cmp     [esi+2], dl
.text:0026A17E                 jnz     short loc_26A1A6
.text:0026A180                 cmp     byte ptr [esi+3], 24h
.text:0026A184                 jnz     short loc_26A1A6
.text:0026A186                 mov     cl, [esi+4]
.text:0026A189                 cmp     cl, 55h
.text:0026A18C                 jz      short loc_26A193
.text:0026A18E                 cmp     cl, 75h
.text:0026A191                 jnz     short loc_26A1A6
.text:0026A193
.text:0026A193 loc_26A193:                             ; CODE XREF: sub_26A0E7+A5j
.text:0026A193                 cmp     [esi+5], dl
.text:0026A196                 jnz     short loc_26A1A6
.text:0026A198                 add     esi, 6
.text:0026A19B                 push    esi
.text:0026A19C                 push    [ebp+arg_0]
.text:0026A19F                 push    offset aDeviceHarddi_2 ; "\\Device\\Harddisk0\\Partition1\\TDATA\\%08x"...
.text:0026A1A4                 jmp     short loc_26A1DD
.text:0026A1A6 ; ---------------------------------------------------------------------------
.text:0026A1A6
.text:0026A1A6 loc_26A1A6:                             ; CODE XREF: sub_26A0E7+8Cj
.text:0026A1A6                                         ; sub_26A0E7+92j ...
.text:0026A1A6                 test    [ebp+arg_8], 2
.text:0026A1AA                 jz      loc_26A25E
.text:0026A1B0                 cmp     al, 59h
.text:0026A1B2                 jz      short loc_26A1BC
.text:0026A1B4                 cmp     al, 79h
.text:0026A1B6                 jnz     loc_26A25E
.text:0026A1BC
.text:0026A1BC loc_26A1BC:                             ; CODE XREF: sub_26A0E7+CBj
.text:0026A1BC                 cmp     byte ptr [esi+1], 3Ah
.text:0026A1C0                 jnz     loc_26A25E
.text:0026A1C6                 cmp     [esi+2], dl
.text:0026A1C9                 jnz     loc_26A25E
.text:0026A1CF                 add     esi, 3
.text:0026A1D2                 push    esi
.text:0026A1D3                 push    offset aDeviceHarddi_1 ; "\\Device\\Harddisk0\\Partition2\\"
.text:0026A1D8                 push    offset dword_494980 ; char *
.text:0026A1DD
.text:0026A1DD loc_26A1DD:                             ; CODE XREF: sub_26A0E7+BDj
.text:0026A1DD                 lea     eax, [ebp+var_16C]
.text:0026A1E3                 push    edi             ; size_t
.text:0026A1E4                 push    eax             ; char *
.text:0026A1E5                 call    __snprintf
.text:0026A1EA                 add     esp, 14h
.text:0026A1ED                 test    eax, eax
.text:0026A1EF                 jl      short loc_26A25E
.text:0026A1F1                 xor     ecx, ecx
.text:0026A1F3                 lea     eax, [ebp+var_16C]
.text:0026A1F9                 xor     ebx, ebx
.text:0026A1FB
.text:0026A1FB loc_26A1FB:                             ; CODE XREF: sub_26A0E7+81j
.text:0026A1FB                 cmp     [ebp+arg_4], 0
.text:0026A1FF                 jz      short loc_26A206
.text:0026A201                 mov     edx, [ebp+arg_C]
.text:0026A204                 jmp     short loc_26A209
.text:0026A206 ; ---------------------------------------------------------------------------
.text:0026A206
.text:0026A206 loc_26A206:                             ; CODE XREF: sub_26A0E7+118j
.text:0026A206                 or      edx, 0FFFFFFFFh
.text:0026A209
.text:0026A209 loc_26A209:                             ; CODE XREF: sub_26A0E7+11Dj
.text:0026A209                 push    [ebp+arg_4]
.text:0026A20C                 push    [ebp+arg_0]
.text:0026A20F                 push    edx
.text:0026A210                 push    ebx
.text:0026A211                 push    ecx
.text:0026A212                 push    eax
.text:0026A213                 call    _XWriteTitleInfoNoReboot@20 ; XWriteTitleInfoNoReboot(x,x,x,x,x)
.text:0026A218                 xor     ebx, ebx
.text:0026A21A                 cmp     [ebp+var_4], ebx
.text:0026A21D                 mov     edi, eax
.text:0026A21F                 jz      short loc_26A226
.text:0026A221                 cmp     [ebp+arg_4], ebx
.text:0026A224                 jz      short loc_26A233
.text:0026A226
.text:0026A226 loc_26A226:                             ; CODE XREF: sub_26A0E7+138j
.text:0026A226                 push    esi
.text:0026A227                 lea     eax, [ebp+var_2D4]
.text:0026A22D                 push    eax
.text:0026A22E                 call    sub_269E6D
.text:0026A233
.text:0026A233 loc_26A233:                             ; CODE XREF: sub_26A0E7+13Dj
.text:0026A233                 cmp     edi, ebx
.text:0026A235                 jl      short loc_26A255
.text:0026A237                 mov     eax, large fs:20h
.text:0026A23D                 mov     eax, [eax+250h]
.text:0026A243                 cmp     eax, ebx
.text:0026A245                 jz      short loc_26A24D
.text:0026A247                 push    ebx
.text:0026A248                 push    2
.text:0026A24A                 call    dword ptr [eax+14h]
.text:0026A24D
.text:0026A24D loc_26A24D:                             ; CODE XREF: sub_26A0E7+15Ej
.text:0026A24D                 push    2
.text:0026A24F                 call    ds:dword_485EB4
.text:0026A255
.text:0026A255 loc_26A255:                             ; CODE XREF: sub_26A0E7+14Ej
.text:0026A255                 push    edi
.text:0026A256                 call    ds:dword_485DD0
.text:0026A25C                 jmp     short loc_26A261
.text:0026A25E ; ---------------------------------------------------------------------------
.text:0026A25E
.text:0026A25E loc_26A25E:                             ; CODE XREF: sub_26A0E7+C3j
.text:0026A25E                                         ; sub_26A0E7+CFj ...
.text:0026A25E                 push    57h
.text:0026A260                 pop     eax
.text:0026A261
.text:0026A261 loc_26A261:                             ; CODE XREF: sub_26A0E7+175j
.text:0026A261                 pop     edi
.text:0026A262                 pop     ebx
.text:0026A263
.text:0026A263 loc_26A263:                             ; CODE XREF: sub_26A0E7+33j
.text:0026A263                 pop     esi
.text:0026A264                 leave
.text:0026A265                 retn    10h
.text:0026A265 sub_26A0E7      endp
.text:0026A265
.text:0026A268
.text:0026A268 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A268
.text:0026A268 ; Attributes: bp-based frame
.text:0026A268
.text:0026A268 sub_26A268      proc near               ; CODE XREF: sub_269696:loc_2697DBp
.text:0026A268
.text:0026A268 var_1050        = dword ptr -1050h
.text:0026A268 var_450         = dword ptr -450h
.text:0026A268 var_2E8         = byte ptr -2E8h
.text:0026A268 var_180         = dword ptr -180h
.text:0026A268 var_18          = dword ptr -18h
.text:0026A268 var_14          = dword ptr -14h
.text:0026A268 var_10          = dword ptr -10h
.text:0026A268 var_C           = dword ptr -0Ch
.text:0026A268 var_8           = dword ptr -8
.text:0026A268 var_4           = dword ptr -4
.text:0026A268
.text:0026A268                 push    ebp
.text:0026A269                 mov     ebp, esp
.text:0026A26B                 mov     eax, 1050h
.text:0026A270                 call    unknown_libname_124 ; XBOX Flirt v2.00 Final.
.text:0026A275                 mov     eax, ds:10118h
.text:0026A27A                 mov     eax, [eax+8]
.text:0026A27D                 cmp     eax, 0FFFE0000h
.text:0026A282                 mov     [ebp+var_18], eax
.text:0026A285                 jz      loc_26A3C9
.text:0026A28B                 push    ebx
.text:0026A28C                 push    edi
.text:0026A28D                 lea     eax, [ebp+var_1050]
.text:0026A293                 push    eax
.text:0026A294                 lea     eax, [ebp+var_14]
.text:0026A297                 push    eax
.text:0026A298                 lea     eax, [ebp+var_C]
.text:0026A29B                 push    eax
.text:0026A29C                 call    sub_269D77
.text:0026A2A1                 test    eax, eax
.text:0026A2A3                 mov     [ebp+var_10], eax
.text:0026A2A6                 mov     ebx, 168h
.text:0026A2AB                 jnz     short loc_26A2C2
.text:0026A2AD                 push    ebx
.text:0026A2AE                 lea     eax, [ebp+var_450]
.text:0026A2B4                 push    eax
.text:0026A2B5                 call    sub_269DDB
.text:0026A2BA                 lea     edi, [ebp+var_450]
.text:0026A2C0                 jmp     short loc_26A2C5
.text:0026A2C2 ; ---------------------------------------------------------------------------
.text:0026A2C2
.text:0026A2C2 loc_26A2C2:                             ; CODE XREF: sub_26A268+43j
.text:0026A2C2                 mov     edi, [ebp+var_C]
.text:0026A2C5
.text:0026A2C5 loc_26A2C5:                             ; CODE XREF: sub_26A268+58j
.text:0026A2C5                 mov     eax, edi
.text:0026A2C7                 lea     edx, [eax+1]
.text:0026A2CA
.text:0026A2CA loc_26A2CA:                             ; CODE XREF: sub_26A268+67j
.text:0026A2CA                 mov     cl, [eax]
.text:0026A2CC                 inc     eax
.text:0026A2CD                 test    cl, cl
.text:0026A2CF                 jnz     short loc_26A2CA
.text:0026A2D1                 sub     eax, edx
.text:0026A2D3                 push    esi
.text:0026A2D4                 mov     esi, eax
.text:0026A2D6                 mov     eax, ds:dword_485EF4
.text:0026A2DB                 movzx   ecx, word ptr [eax]
.text:0026A2DE                 cmp     ecx, esi
.text:0026A2E0                 jbe     loc_26A390
.text:0026A2E6                 push    esi             ; size_t
.text:0026A2E7                 push    edi             ; char *
.text:0026A2E8                 push    dword ptr [eax+4] ; char *
.text:0026A2EB                 call    __strnicmp
.text:0026A2F0                 add     esp, 0Ch
.text:0026A2F3                 test    eax, eax
.text:0026A2F5                 jnz     loc_26A390
.text:0026A2FB                 mov     eax, ds:dword_485EF4
.text:0026A300                 movzx   ecx, word ptr [eax]
.text:0026A303                 mov     eax, [eax+4]
.text:0026A306                 inc     esi
.text:0026A307                 sub     ecx, esi
.text:0026A309                 push    ecx
.text:0026A30A                 add     eax, esi
.text:0026A30C                 push    eax
.text:0026A30D                 lea     eax, [ebp+var_180]
.text:0026A313                 push    eax
.text:0026A314                 call    unknown_libname_79 ; XBOX Flirt v2.00 Final.
.text:0026A319                 mov     eax, ds:dword_485EF4
.text:0026A31E                 movzx   eax, word ptr [eax]
.text:0026A321                 sub     eax, esi
.text:0026A323                 mov     byte ptr [ebp+eax+var_180], 0
.text:0026A32B                 lea     eax, [ebp+var_180]
.text:0026A331                 push    eax
.text:0026A332                 push    offset aTU      ; "t:\\$u\\"
.text:0026A337                 push    offset dword_494980 ; char *
.text:0026A33C                 lea     eax, [ebp+var_2E8]
.text:0026A342                 push    ebx             ; size_t
.text:0026A343                 push    eax             ; char *
.text:0026A344                 call    __snprintf
.text:0026A349                 add     esp, 20h
.text:0026A34C                 test    eax, eax
.text:0026A34E                 jl      short loc_26A3C6
.text:0026A350                 mov     eax, ds:10118h
.text:0026A355                 push    0
.text:0026A357                 push    dword ptr [eax+0ACh]
.text:0026A35D                 lea     eax, [ebp+var_180]
.text:0026A363                 push    [ebp+var_18]
.text:0026A366                 push    eax
.text:0026A367                 call    sub_269EEE
.text:0026A36C                 test    eax, eax
.text:0026A36E                 jl      short loc_26A390
.text:0026A370                 mov     eax, [ebp+var_14]
.text:0026A373                 push    eax
.text:0026A374                 inc     eax
.text:0026A375                 neg     eax
.text:0026A377                 sbb     eax, eax
.text:0026A379                 lea     ecx, [ebp+var_1050]
.text:0026A37F                 push    0
.text:0026A381                 and     eax, ecx
.text:0026A383                 push    eax
.text:0026A384                 lea     eax, [ebp+var_2E8]
.text:0026A38A                 push    eax
.text:0026A38B                 call    sub_26A0E7
.text:0026A390
.text:0026A390 loc_26A390:                             ; CODE XREF: sub_26A268+78j
.text:0026A390                                         ; sub_26A268+8Dj ...
.text:0026A390                 cmp     [ebp+var_10], 0
.text:0026A394                 jz      short loc_26A3C6
.text:0026A396                 mov     eax, edi
.text:0026A398                 lea     edx, [eax+1]
.text:0026A39B
.text:0026A39B loc_26A39B:                             ; CODE XREF: sub_26A268+138j
.text:0026A39B                 mov     cl, [eax]
.text:0026A39D                 inc     eax
.text:0026A39E                 test    cl, cl
.text:0026A3A0                 jnz     short loc_26A39B
.text:0026A3A2                 sub     eax, edx
.text:0026A3A4                 mov     esi, offset off_56DDAC
.text:0026A3A9                 push    esi
.text:0026A3AA                 mov     word ptr [ebp+var_8], ax
.text:0026A3AE                 mov     word ptr [ebp+var_8+2], ax
.text:0026A3B2                 mov     [ebp+var_4], edi
.text:0026A3B5                 call    ds:dword_485E0C
.text:0026A3BB                 lea     eax, [ebp+var_8]
.text:0026A3BE                 push    eax
.text:0026A3BF                 push    esi
.text:0026A3C0                 call    ds:dword_485E00
.text:0026A3C6
.text:0026A3C6 loc_26A3C6:                             ; CODE XREF: sub_26A268+E6j
.text:0026A3C6                                         ; sub_26A268+12Cj
.text:0026A3C6                 pop     esi
.text:0026A3C7                 pop     edi
.text:0026A3C8                 pop     ebx
.text:0026A3C9
.text:0026A3C9 loc_26A3C9:                             ; CODE XREF: sub_26A268+1Dj
.text:0026A3C9                 xor     eax, eax
.text:0026A3CB                 leave
.text:0026A3CC                 retn
.text:0026A3CC sub_26A268      endp
.text:0026A3CC
.text:0026A3CD ; [0000004F BYTES: COLLAPSED FUNCTION HeapCreate(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A41C ; [0000001C BYTES: COLLAPSED FUNCTION HeapDestroy(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A438 ; [00000017 BYTES: COLLAPSED FUNCTION HeapFree(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A44F
.text:0026A44F ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A44F
.text:0026A44F
.text:0026A44F sub_26A44F      proc near               ; CODE XREF: sub_289230+74p
.text:0026A44F                                         ; sub_289300+Ap ...
.text:0026A44F                 mov     eax, dword_5E7360
.text:0026A454                 retn
.text:0026A454 sub_26A44F      endp
.text:0026A454
.text:0026A455 ; [0000001D BYTES: COLLAPSED FUNCTION unknown_libname_44. PRESS KEYPAD "+" TO EXPAND]
.text:0026A472 ; [0000001E BYTES: COLLAPSED FUNCTION LocalFree(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A490 ; [0000017D BYTES: COLLAPSED FUNCTION XapiNukeDirectoryFromHandle(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A60D ; [0000006F BYTES: COLLAPSED FUNCTION XapiNukeDirectory(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A67C
.text:0026A67C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A67C
.text:0026A67C
.text:0026A67C sub_26A67C      proc near               ; CODE XREF: sub_2689DA:loc_268A08p
.text:0026A67C                                         ; sub_303E01:loc_303E21p
.text:0026A67C                 mov     eax, ds:dword_485F1C
.text:0026A681                 mov     eax, [eax]
.text:0026A683                 retn
.text:0026A683 sub_26A67C      endp
.text:0026A683
.text:0026A684 ; [00000189 BYTES: COLLAPSED FUNCTION xCompareStringA(x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026A80D ; [00000058 BYTES: COLLAPSED FUNCTION _cinit(). PRESS KEYPAD "+" TO EXPAND]
.text:0026A865 ; [00000029 BYTES: COLLAPSED FUNCTION _rtinit(). PRESS KEYPAD "+" TO EXPAND]
.text:0026A88E ; ---------------------------------------------------------------------------
.text:0026A88E ; START OF FUNCTION CHUNK FOR sub_26A8F2
.text:0026A88E
.text:0026A88E loc_26A88E:                             ; CODE XREF: sub_26A8F2+BFj
.text:0026A88E                 push    ebp
.text:0026A88F                 mov     ebp, esp
.text:0026A891                 push    ecx
.text:0026A892                 push    ecx
.text:0026A893                 mov     eax, ds:8001003Ch
.text:0026A898                 mov     edx, 7FFF0000h
.text:0026A89D                 sub     eax, edx
.text:0026A89F                 movzx   ecx, word ptr [eax+6]
.text:0026A8A3                 push    esi
.text:0026A8A4                 movzx   esi, word ptr [eax+14h]
.text:0026A8A8                 add     esi, eax
.text:0026A8AA                 lea     ecx, [ecx+ecx*4]
.text:0026A8AD                 lea     eax, [esi+ecx*8-10h]
.text:0026A8B1                 cmp     dword ptr [eax], 54494E49h
.text:0026A8B7                 pop     esi
.text:0026A8B8                 jnz     short locret_26A8F0
.text:0026A8BA                 mov     eax, [eax+0Ch]
.text:0026A8BD                 and     word ptr [ebp-6], 0
.text:0026A8C2                 sub     eax, edx
.text:0026A8C4                 shr     eax, 0Ch
.text:0026A8C7                 mov     ecx, eax
.text:0026A8C9                 shr     ecx, 10h
.text:0026A8CC                 and     ecx, 0Fh
.text:0026A8CF                 shl     ecx, 10h
.text:0026A8D2                 or      ecx, 0C09B00h
.text:0026A8D8                 push    ecx
.text:0026A8D9                 mov     [ebp-8], ax
.text:0026A8DD                 push    dword ptr [ebp-8]
.text:0026A8E0                 call    sub_26D950
.text:0026A8E5                 mov     dword_5E7358, eax
.text:0026A8EA                 mov     dword_5E735C, edx
.text:0026A8F0
.text:0026A8F0 locret_26A8F0:                          ; CODE XREF: sub_26A8F2-3Aj
.text:0026A8F0                 leave
.text:0026A8F1                 retn
.text:0026A8F1 ; END OF FUNCTION CHUNK FOR sub_26A8F2
.text:0026A8F2
.text:0026A8F2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026A8F2
.text:0026A8F2
.text:0026A8F2 sub_26A8F2      proc near               ; CODE XREF: sub_268E41p
.text:0026A8F2
.text:0026A8F2 ; FUNCTION CHUNK AT .text:0026A88E SIZE 00000064 BYTES
.text:0026A8F2
.text:0026A8F2                 mov     eax, ds:dword_485EEC
.text:0026A8F7                 mov     eax, [eax]
.text:0026A8F9                 mov     ecx, ds:dword_485F20
.text:0026A8FF                 movzx   ecx, word ptr [ecx+4]
.text:0026A903                 shr     eax, 1
.text:0026A905                 not     al
.text:0026A907                 and     al, 1
.text:0026A909                 cmp     ecx, 0F68h
.text:0026A90F                 push    esi
.text:0026A910                 jz      short loc_26A95D
.text:0026A912                 cmp     ecx, 0FC2h
.text:0026A918                 jz      short loc_26A952
.text:0026A91A                 cmp     ecx, 0FC7h
.text:0026A920                 jz      short loc_26A942
.text:0026A922                 cmp     ecx, 12D0h
.text:0026A928                 jle     short loc_26A9A1
.text:0026A92A                 cmp     ecx, 12D2h
.text:0026A930                 jg      short loc_26A9A1
.text:0026A932                 neg     al
.text:0026A934                 sbb     eax, eax
.text:0026A936                 and     eax, 0FFFF1611h
.text:0026A93B                 add     eax, 8003838Fh
.text:0026A940                 jmp     short loc_26A96B
.text:0026A942 ; ---------------------------------------------------------------------------
.text:0026A942
.text:0026A942 loc_26A942:                             ; CODE XREF: sub_26A8F2+2Ej
.text:0026A942                 neg     al
.text:0026A944                 sbb     eax, eax
.text:0026A946                 and     eax, 0FFFF12CBh
.text:0026A94B                 add     eax, 800398CDh
.text:0026A950                 jmp     short loc_26A96B
.text:0026A952 ; ---------------------------------------------------------------------------
.text:0026A952
.text:0026A952 loc_26A952:                             ; CODE XREF: sub_26A8F2+26j
.text:0026A952                 neg     al
.text:0026A954                 sbb     eax, eax
.text:0026A956                 and     eax, 8002AB88h
.text:0026A95B                 jmp     short loc_26A96B
.text:0026A95D ; ---------------------------------------------------------------------------
.text:0026A95D
.text:0026A95D loc_26A95D:                             ; CODE XREF: sub_26A8F2+1Ej
.text:0026A95D                 neg     al
.text:0026A95F                 sbb     eax, eax
.text:0026A961                 and     eax, 0FFFF1471h
.text:0026A966                 add     eax, 80039749h
.text:0026A96B
.text:0026A96B loc_26A96B:                             ; CODE XREF: sub_26A8F2+4Ej
.text:0026A96B                                         ; sub_26A8F2+5Ej ...
.text:0026A96B                 mov     esi, eax
.text:0026A96D                 test    esi, esi
.text:0026A96F                 jz      short loc_26A9A1
.text:0026A971                 cmp     dword ptr [esi], 20C5048Dh
.text:0026A977                 jnz     short loc_26A9A1
.text:0026A979                 push    ebx
.text:0026A97A                 push    edi
.text:0026A97B                 push    esi
.text:0026A97C                 call    ds:dword_485E24
.text:0026A982                 mov     edi, ds:dword_485E1C
.text:0026A988                 push    4
.text:0026A98A                 push    4
.text:0026A98C                 push    esi
.text:0026A98D                 mov     ebx, eax
.text:0026A98F                 call    edi
.text:0026A991                 cli
.text:0026A992                 mov     dword ptr [esi], 28C5048Dh
.text:0026A998                 sti
.text:0026A999                 push    ebx
.text:0026A99A                 push    4
.text:0026A99C                 push    esi
.text:0026A99D                 call    edi
.text:0026A99F                 pop     edi
.text:0026A9A0                 pop     ebx
.text:0026A9A1
.text:0026A9A1 loc_26A9A1:                             ; CODE XREF: sub_26A8F2+36j
.text:0026A9A1                                         ; sub_26A8F2+3Ej ...
.text:0026A9A1                 mov     eax, large fs:20h
.text:0026A9A7                 cmp     dword ptr [eax+250h], 0
.text:0026A9AE                 pop     esi
.text:0026A9AF                 jnz     short locret_26A9B6
.text:0026A9B1                 jmp     loc_26A88E
.text:0026A9B6 ; ---------------------------------------------------------------------------
.text:0026A9B6
.text:0026A9B6 locret_26A9B6:                          ; CODE XREF: sub_26A8F2+BDj
.text:0026A9B6                 retn
.text:0026A9B6 sub_26A8F2      endp ; sp = -8
.text:0026A9B6
.text:0026A9B7 ; [00000025 BYTES: COLLAPSED FUNCTION XGetParentalControlSetting(). PRESS KEYPAD "+" TO EXPAND]
.text:0026A9DC ; [00000120 BYTES: COLLAPSED FUNCTION RtlpCreateUnCommittedRange(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026AAFC ; [00000021 BYTES: COLLAPSED FUNCTION RtlpDestroyUnCommittedRange(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026AB1D ; [00000093 BYTES: COLLAPSED FUNCTION RtlpInsertUnCommittedPages(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026ABB0 ; [0000018B BYTES: COLLAPSED FUNCTION RtlpFindAndCommitPages(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026AD3B ; [00000032 BYTES: COLLAPSED FUNCTION RtlpDestroyHeapSegment(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026AD6D ; [000002A5 BYTES: COLLAPSED FUNCTION RtlpCoalesceFreeBlocks(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026B012
.text:0026B012 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026B012
.text:0026B012 ; Attributes: bp-based frame
.text:0026B012
.text:0026B012 sub_26B012      proc near               ; CODE XREF: sub_26B1B7+82p
.text:0026B012                                         ; sub_26B1B7+3B0p ...
.text:0026B012
.text:0026B012 var_8           = dword ptr -8
.text:0026B012 var_1           = byte ptr -1
.text:0026B012 arg_0           = dword ptr  8
.text:0026B012 arg_4           = dword ptr  0Ch
.text:0026B012 arg_8           = dword ptr  10h
.text:0026B012
.text:0026B012                 push    ebp
.text:0026B013                 mov     ebp, esp
.text:0026B015                 push    ecx
.text:0026B016                 push    ecx
.text:0026B017                 mov     eax, [ebp+arg_4]
.text:0026B01A                 mov     dl, [eax+4]
.text:0026B01D                 push    ebx
.text:0026B01E                 push    esi
.text:0026B01F                 mov     si, [eax+2]
.text:0026B023                 movzx   ecx, dl
.text:0026B026                 push    edi
.text:0026B027                 mov     edi, [ebp+arg_0]
.text:0026B02A                 mov     ecx, [edi+ecx*4+60h]
.text:0026B02E                 mov     [ebp+var_8], ecx
.text:0026B031                 mov     cl, [eax+5]
.text:0026B034                 mov     byte ptr [ebp+arg_4+3], cl
.text:0026B037                 mov     ecx, [ebp+arg_8]
.text:0026B03A                 add     [edi+30h], ecx
.text:0026B03D                 test    ecx, ecx
.text:0026B03F                 mov     [ebp+var_1], dl
.text:0026B042                 jz      loc_26B0FB
.text:0026B048                 jmp     short loc_26B050
.text:0026B04A ; ---------------------------------------------------------------------------
.text:0026B04A
.text:0026B04A loc_26B04A:                             ; CODE XREF: sub_26B012+E3j
.text:0026B04A                 mov     dl, [ebp+var_1]
.text:0026B04D                 mov     ecx, [ebp+arg_8]
.text:0026B050
.text:0026B050 loc_26B050:                             ; CODE XREF: sub_26B012+36j
.text:0026B050                 cmp     ecx, 0FF00h
.text:0026B056                 jbe     short loc_26B06E
.text:0026B058                 cmp     ecx, 0FF01h
.text:0026B05E                 mov     ebx, 0FF00h
.text:0026B063                 jnz     short loc_26B068
.text:0026B065                 add     ebx, 0FFFFFFF0h
.text:0026B068
.text:0026B068 loc_26B068:                             ; CODE XREF: sub_26B012+51j
.text:0026B068                 mov     byte ptr [eax+5], 0
.text:0026B06C                 jmp     short loc_26B076
.text:0026B06E ; ---------------------------------------------------------------------------
.text:0026B06E
.text:0026B06E loc_26B06E:                             ; CODE XREF: sub_26B012+44j
.text:0026B06E                 mov     ebx, ecx
.text:0026B070                 mov     cl, byte ptr [ebp+arg_4+3]
.text:0026B073                 mov     [eax+5], cl
.text:0026B076
.text:0026B076 loc_26B076:                             ; CODE XREF: sub_26B012+5Aj
.text:0026B076                 and     byte ptr [eax+5], 0F8h
.text:0026B07A                 cmp     bx, 80h
.text:0026B07F                 mov     [eax+2], si
.text:0026B083                 mov     [eax+4], dl
.text:0026B086                 mov     [eax], bx
.text:0026B089                 jnb     short loc_26B0B6
.text:0026B08B                 movzx   ecx, bx
.text:0026B08E                 lea     esi, [edi+ecx*8+180h]
.text:0026B095                 cmp     [esi], esi
.text:0026B097                 jnz     short loc_26B0CC
.text:0026B099                 mov     edx, ecx
.text:0026B09B                 shr     edx, 3
.text:0026B09E                 lea     edx, [edx+edi+160h]
.text:0026B0A5                 mov     [ebp+arg_0], edx
.text:0026B0A8                 and     ecx, 7
.text:0026B0AB                 mov     dl, 1
.text:0026B0AD                 shl     dl, cl
.text:0026B0AF                 mov     ecx, [ebp+arg_0]
.text:0026B0B2                 or      [ecx], dl
.text:0026B0B4                 jmp     short loc_26B0CC
.text:0026B0B6 ; ---------------------------------------------------------------------------
.text:0026B0B6
.text:0026B0B6 loc_26B0B6:                             ; CODE XREF: sub_26B012+77j
.text:0026B0B6                 lea     ecx, [edi+180h]
.text:0026B0BC                 mov     esi, [ecx]
.text:0026B0BE                 jmp     short loc_26B0C8
.text:0026B0C0 ; ---------------------------------------------------------------------------
.text:0026B0C0
.text:0026B0C0 loc_26B0C0:                             ; CODE XREF: sub_26B012+B8j
.text:0026B0C0                 cmp     bx, [esi-8]
.text:0026B0C4                 jbe     short loc_26B0CC
.text:0026B0C6                 mov     esi, [esi]
.text:0026B0C8
.text:0026B0C8 loc_26B0C8:                             ; CODE XREF: sub_26B012+ACj
.text:0026B0C8                 cmp     ecx, esi
.text:0026B0CA                 jnz     short loc_26B0C0
.text:0026B0CC
.text:0026B0CC loc_26B0CC:                             ; CODE XREF: sub_26B012+85j
.text:0026B0CC                                         ; sub_26B012+A2j ...
.text:0026B0CC                 mov     edx, [esi+4]
.text:0026B0CF                 lea     ecx, [eax+8]
.text:0026B0D2                 mov     [ecx], esi
.text:0026B0D4                 mov     [eax+0Ch], edx
.text:0026B0D7                 mov     [edx], ecx
.text:0026B0D9                 mov     [esi+4], ecx
.text:0026B0DC                 movzx   ecx, bx
.text:0026B0DF                 sub     [ebp+arg_8], ecx
.text:0026B0E2                 shl     ecx, 4
.text:0026B0E5                 add     eax, ecx
.text:0026B0E7                 mov     ecx, [ebp+var_8]
.text:0026B0EA                 cmp     eax, [ecx+2Ch]
.text:0026B0ED                 mov     esi, ebx
.text:0026B0EF                 jnb     short loc_26B105
.text:0026B0F1                 cmp     [ebp+arg_8], 0
.text:0026B0F5                 jnz     loc_26B04A
.text:0026B0FB
.text:0026B0FB loc_26B0FB:                             ; CODE XREF: sub_26B012+30j
.text:0026B0FB                 test    byte ptr [ebp+arg_4+3], 10h
.text:0026B0FF                 jnz     short loc_26B105
.text:0026B101                 mov     [eax+2], si
.text:0026B105
.text:0026B105 loc_26B105:                             ; CODE XREF: sub_26B012+DDj
.text:0026B105                                         ; sub_26B012+EDj
.text:0026B105                 pop     edi
.text:0026B106                 pop     esi
.text:0026B107                 pop     ebx
.text:0026B108                 leave
.text:0026B109                 retn    0Ch
.text:0026B109 sub_26B012      endp
.text:0026B109
.text:0026B10C ; [0000001C BYTES: COLLAPSED FUNCTION RtlpGetExtraStuffPointer(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026B128 ; [0000008F BYTES: COLLAPSED FUNCTION RtlDestroyHeap(x). PRESS KEYPAD "+" TO EXPAND]
.text:0026B1B7
.text:0026B1B7 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026B1B7
.text:0026B1B7 ; Attributes: bp-based frame
.text:0026B1B7
.text:0026B1B7 sub_26B1B7      proc near               ; CODE XREF: sub_26C8C6+4F3p
.text:0026B1B7
.text:0026B1B7 var_C           = dword ptr -0Ch
.text:0026B1B7 var_8           = dword ptr -8
.text:0026B1B7 var_2           = byte ptr -2
.text:0026B1B7 arg_0           = dword ptr  8
.text:0026B1B7 arg_4           = dword ptr  0Ch
.text:0026B1B7 arg_8           = dword ptr  10h
.text:0026B1B7 arg_C           = dword ptr  14h
.text:0026B1B7 arg_10          = dword ptr  18h
.text:0026B1B7
.text:0026B1B7                 push    ebp
.text:0026B1B8                 mov     ebp, esp
.text:0026B1BA                 sub     esp, 0Ch
.text:0026B1BD                 mov     edx, [ebp+arg_10]
.text:0026B1C0                 push    ebx
.text:0026B1C1                 mov     ebx, [ebp+arg_0]
.text:0026B1C4                 cmp     edx, [ebx+1Ch]
.text:0026B1C7                 jbe     short loc_26B1D0
.text:0026B1C9                 xor     al, al
.text:0026B1CB                 jmp     loc_26B5B0
.text:0026B1D0 ; ---------------------------------------------------------------------------
.text:0026B1D0
.text:0026B1D0 loc_26B1D0:                             ; CODE XREF: sub_26B1B7+10j
.text:0026B1D0                 push    esi
.text:0026B1D1                 push    edi
.text:0026B1D2                 mov     edi, [ebp+arg_8]
.text:0026B1D5                 movzx   eax, word ptr [edi]
.text:0026B1D8                 mov     cl, [edi+5]
.text:0026B1DB                 mov     esi, eax
.text:0026B1DD                 shl     esi, 4
.text:0026B1E0                 add     esi, edi
.text:0026B1E2                 test    cl, 10h
.text:0026B1E5                 mov     [ebp+var_2], cl
.text:0026B1E8                 jz      short loc_26B251
.text:0026B1EA                 sub     edx, eax
.text:0026B1EC                 push    esi
.text:0026B1ED                 shl     edx, 4
.text:0026B1F0                 lea     eax, [ebp+var_8]
.text:0026B1F3                 push    eax
.text:0026B1F4                 movzx   eax, byte ptr [edi+4]
.text:0026B1F8                 add     edx, 0FFFh
.text:0026B1FE                 and     edx, 0FFFFF000h
.text:0026B204                 mov     [ebp+var_8], edx
.text:0026B207                 push    dword ptr [ebx+eax*4+60h]
.text:0026B20B                 push    ebx
.text:0026B20C                 call    _RtlpFindAndCommitPages@16 ; RtlpFindAndCommitPages(x,x,x,x)
.text:0026B211                 test    eax, eax
.text:0026B213                 jz      short loc_26B268
.text:0026B215                 shr     [ebp+var_8], 4
.text:0026B219                 push    0
.text:0026B21B                 lea     ecx, [ebp+var_8]
.text:0026B21E                 push    ecx
.text:0026B21F                 push    eax
.text:0026B220                 push    ebx
.text:0026B221                 call    _RtlpCoalesceFreeBlocks@16 ; RtlpCoalesceFreeBlocks(x,x,x,x)
.text:0026B226                 movzx   edx, word ptr [edi]
.text:0026B229                 mov     esi, [ebp+var_8]
.text:0026B22C                 mov     cl, [eax+5]
.text:0026B22F                 add     edx, esi
.text:0026B231                 cmp     edx, [ebp+arg_10]
.text:0026B234                 jnb     short loc_26B246
.text:0026B236                 push    esi
.text:0026B237                 push    eax
.text:0026B238                 push    ebx
.text:0026B239                 call    sub_26B012
.text:0026B23E                 mov     eax, [ebp+var_8]
.text:0026B241                 add     [ebx+30h], eax
.text:0026B244                 jmp     short loc_26B268
.text:0026B246 ; ---------------------------------------------------------------------------
.text:0026B246
.text:0026B246 loc_26B246:                             ; CODE XREF: sub_26B1B7+7Dj
.text:0026B246                 mov     [ebp+var_8], edx
.text:0026B249                 mov     edx, [ebp+arg_10]
.text:0026B24C                 jmp     loc_26B2E1
.text:0026B251 ; ---------------------------------------------------------------------------
.text:0026B251
.text:0026B251 loc_26B251:                             ; CODE XREF: sub_26B1B7+31j
.text:0026B251                 mov     cl, [esi+5]
.text:0026B254                 test    cl, 1
.text:0026B257                 mov     byte ptr [ebp+arg_0+3], cl
.text:0026B25A                 jnz     short loc_26B268
.text:0026B25C                 movzx   ecx, word ptr [esi]
.text:0026B25F                 add     ecx, eax
.text:0026B261                 cmp     ecx, edx
.text:0026B263                 mov     [ebp+var_8], ecx
.text:0026B266                 jnb     short loc_26B26F
.text:0026B268
.text:0026B268 loc_26B268:                             ; CODE XREF: sub_26B1B7+5Cj
.text:0026B268                                         ; sub_26B1B7+8Dj ...
.text:0026B268                 xor     al, al
.text:0026B26A                 jmp     loc_26B5AE
.text:0026B26F ; ---------------------------------------------------------------------------
.text:0026B26F
.text:0026B26F loc_26B26F:                             ; CODE XREF: sub_26B1B7+AFj
.text:0026B26F                 mov     eax, [esi+8]
.text:0026B272                 mov     ecx, [esi+0Ch]
.text:0026B275                 cmp     eax, ecx
.text:0026B277                 mov     [ecx], eax
.text:0026B279                 mov     [eax+4], ecx
.text:0026B27C                 jnz     short loc_26B2A7
.text:0026B27E                 mov     ax, [esi]
.text:0026B281                 cmp     ax, 80h
.text:0026B285                 jnb     short loc_26B2A7
.text:0026B287                 movzx   ecx, ax
.text:0026B28A                 mov     eax, ecx
.text:0026B28C                 shr     eax, 3
.text:0026B28F                 lea     eax, [eax+ebx+160h]
.text:0026B296                 mov     [ebp+var_C], eax
.text:0026B299                 and     ecx, 7
.text:0026B29C                 mov     al, 1
.text:0026B29E                 shl     al, cl
.text:0026B2A0                 mov     cl, al
.text:0026B2A2                 mov     eax, [ebp+var_C]
.text:0026B2A5                 xor     [eax], cl
.text:0026B2A7
.text:0026B2A7 loc_26B2A7:                             ; CODE XREF: sub_26B1B7+C5j
.text:0026B2A7                                         ; sub_26B1B7+CEj
.text:0026B2A7                 mov     cl, [esi+5]
.text:0026B2AA                 test    cl, 4
.text:0026B2AD                 jz      short loc_26B2D8
.text:0026B2AF                 movzx   eax, word ptr [esi]
.text:0026B2B2                 shl     eax, 4
.text:0026B2B5                 sub     eax, 18h
.text:0026B2B8                 test    cl, 2
.text:0026B2BB                 jz      short loc_26B2C5
.text:0026B2BD                 cmp     eax, 4
.text:0026B2C0                 jbe     short loc_26B2C5
.text:0026B2C2                 sub     eax, 4
.text:0026B2C5
.text:0026B2C5 loc_26B2C5:                             ; CODE XREF: sub_26B1B7+104j
.text:0026B2C5                                         ; sub_26B1B7+109j
.text:0026B2C5                 push    0FEEEFEEEh
.text:0026B2CA                 push    eax
.text:0026B2CB                 lea     eax, [esi+18h]
.text:0026B2CE                 push    eax
.text:0026B2CF                 call    ds:dword_485F24
.text:0026B2D5                 mov     edx, [ebp+arg_10]
.text:0026B2D8
.text:0026B2D8 loc_26B2D8:                             ; CODE XREF: sub_26B1B7+F6j
.text:0026B2D8                 movzx   eax, word ptr [esi]
.text:0026B2DB                 sub     [ebx+30h], eax
.text:0026B2DE                 mov     cl, byte ptr [ebp+arg_0+3]
.text:0026B2E1
.text:0026B2E1 loc_26B2E1:                             ; CODE XREF: sub_26B1B7+95j
.text:0026B2E1                 movzx   eax, word ptr [edi]
.text:0026B2E4                 movzx   esi, byte ptr [edi+6]
.text:0026B2E8                 sub     [ebp+var_8], edx
.text:0026B2EB                 shl     eax, 4
.text:0026B2EE                 sub     eax, esi
.text:0026B2F0                 cmp     [ebp+var_8], 2
.text:0026B2F4                 mov     [ebp+var_C], eax
.text:0026B2F7                 ja      short loc_26B300
.text:0026B2F9                 add     edx, [ebp+var_8]
.text:0026B2FC                 and     [ebp+var_8], 0
.text:0026B300
.text:0026B300 loc_26B300:                             ; CODE XREF: sub_26B1B7+140j
.text:0026B300                 test    [ebp+var_2], 2
.text:0026B304                 jz      short loc_26B320
.text:0026B306                 movzx   eax, word ptr [edi]
.text:0026B309                 shl     eax, 4
.text:0026B30C                 lea     esi, [eax+edi-10h]
.text:0026B310                 mov     eax, edx
.text:0026B312                 shl     eax, 4
.text:0026B315                 lea     edi, [eax+edi-10h]
.text:0026B319                 movsd
.text:0026B31A                 movsd
.text:0026B31B                 movsd
.text:0026B31C                 movsd
.text:0026B31D                 mov     edi, [ebp+arg_8]
.text:0026B320
.text:0026B320 loc_26B320:                             ; CODE XREF: sub_26B1B7+14Dj
.text:0026B320                 mov     al, dl
.text:0026B322                 shl     al, 4
.text:0026B325                 sub     al, byte ptr [ebp+arg_C]
.text:0026B328                 cmp     [ebp+var_8], 0
.text:0026B32C                 mov     [edi], dx
.text:0026B32F                 mov     [edi+6], al
.text:0026B332                 jnz     short loc_26B361
.text:0026B334                 and     cl, 10h
.text:0026B337                 or      [edi+5], cl
.text:0026B33A                 test    cl, cl
.text:0026B33C                 mov     byte ptr [ebp+arg_10+3], cl
.text:0026B33F                 jnz     short loc_26B351
.text:0026B341                 movzx   eax, dx
.text:0026B344                 shl     eax, 4
.text:0026B347                 mov     [eax+edi+2], dx
.text:0026B34C                 jmp     loc_26B56F
.text:0026B351 ; ---------------------------------------------------------------------------
.text:0026B351
.text:0026B351 loc_26B351:                             ; CODE XREF: sub_26B1B7+188j
.text:0026B351                 movzx   eax, byte ptr [edi+4]
.text:0026B355                 mov     eax, [ebx+eax*4+60h]
.text:0026B359                 mov     [eax+40h], edi
.text:0026B35C                 jmp     loc_26B56F
.text:0026B361 ; ---------------------------------------------------------------------------
.text:0026B361
.text:0026B361 loc_26B361:                             ; CODE XREF: sub_26B1B7+17Bj
.text:0026B361                 mov     esi, edx
.text:0026B363                 shl     esi, 4
.text:0026B366                 add     esi, edi
.text:0026B368                 test    cl, 10h
.text:0026B36B                 mov     [esi+2], dx
.text:0026B36F                 mov     al, [edi+4]
.text:0026B372                 mov     [esi+4], al
.text:0026B375                 jz      loc_26B400
.text:0026B37B                 movzx   eax, al
.text:0026B37E                 mov     eax, [ebx+eax*4+60h]
.text:0026B382                 mov     [eax+40h], esi
.text:0026B385                 mov     [esi+5], cl
.text:0026B388                 mov     ax, word ptr [ebp+var_8]
.text:0026B38C                 and     cl, 0F8h
.text:0026B38F                 mov     [esi], ax
.text:0026B392                 mov     [esi+5], cl
.text:0026B395                 mov     ecx, [ebp+var_8]
.text:0026B398                 cmp     cx, 80h
.text:0026B39D                 jnb     short loc_26B3CF
.text:0026B39F                 movzx   eax, cx
.text:0026B3A2                 lea     edx, [ebx+eax*8+180h]
.text:0026B3A9                 cmp     [edx], edx
.text:0026B3AB                 jnz     short loc_26B3E5
.text:0026B3AD                 movzx   ecx, word ptr [esi]
.text:0026B3B0                 mov     eax, ecx
.text:0026B3B2                 shr     eax, 3
.text:0026B3B5                 lea     eax, [eax+ebx+160h]
.text:0026B3BC                 mov     [ebp+arg_0], eax
.text:0026B3BF                 and     ecx, 7
.text:0026B3C2                 mov     al, 1
.text:0026B3C4                 shl     al, cl
.text:0026B3C6                 mov     cl, al
.text:0026B3C8                 mov     eax, [ebp+arg_0]
.text:0026B3CB                 or      [eax], cl
.text:0026B3CD                 jmp     short loc_26B3E5
.text:0026B3CF ; ---------------------------------------------------------------------------
.text:0026B3CF
.text:0026B3CF loc_26B3CF:                             ; CODE XREF: sub_26B1B7+1E6j
.text:0026B3CF                 lea     eax, [ebx+180h]
.text:0026B3D5                 mov     edx, [eax]
.text:0026B3D7                 jmp     short loc_26B3E1
.text:0026B3D9 ; ---------------------------------------------------------------------------
.text:0026B3D9
.text:0026B3D9 loc_26B3D9:                             ; CODE XREF: sub_26B1B7+22Cj
.text:0026B3D9                 cmp     cx, [edx-8]
.text:0026B3DD                 jbe     short loc_26B3E5
.text:0026B3DF                 mov     edx, [edx]
.text:0026B3E1
.text:0026B3E1 loc_26B3E1:                             ; CODE XREF: sub_26B1B7+220j
.text:0026B3E1                 cmp     eax, edx
.text:0026B3E3                 jnz     short loc_26B3D9
.text:0026B3E5
.text:0026B3E5 loc_26B3E5:                             ; CODE XREF: sub_26B1B7+1F4j
.text:0026B3E5                                         ; sub_26B1B7+216j ...
.text:0026B3E5                 mov     ecx, [edx+4]
.text:0026B3E8                 lea     eax, [esi+8]
.text:0026B3EB                 mov     [eax], edx
.text:0026B3ED                 mov     [esi+0Ch], ecx
.text:0026B3F0                 mov     [ecx], eax
.text:0026B3F2                 mov     [edx+4], eax
.text:0026B3F5                 mov     eax, [ebp+var_8]
.text:0026B3F8                 add     [ebx+30h], eax
.text:0026B3FB                 jmp     loc_26B56F
.text:0026B400 ; ---------------------------------------------------------------------------
.text:0026B400
.text:0026B400 loc_26B400:                             ; CODE XREF: sub_26B1B7+1BEj
.text:0026B400                 mov     edi, [ebp+var_8]
.text:0026B403                 shl     edi, 4
.text:0026B406                 add     edi, esi
.text:0026B408                 mov     al, [edi+5]
.text:0026B40B                 test    al, 1
.text:0026B40D                 jz      short loc_26B485
.text:0026B40F                 and     cl, 0EFh
.text:0026B412                 mov     [esi+5], cl
.text:0026B415                 mov     ax, word ptr [ebp+var_8]
.text:0026B419                 mov     [esi], ax
.text:0026B41C                 mov     eax, [ebp+var_8]
.text:0026B41F                 mov     ecx, eax
.text:0026B421                 shl     ecx, 4
.text:0026B424                 mov     [ecx+esi+2], ax
.text:0026B429                 and     byte ptr [esi+5], 0F8h
.text:0026B42D                 mov     ecx, [ebp+var_8]
.text:0026B430                 cmp     cx, 80h
.text:0026B435                 jnb     short loc_26B466
.text:0026B437
.text:0026B437 loc_26B437:                             ; CODE XREF: sub_26B1B7+379j
.text:0026B437                 movzx   eax, cx
.text:0026B43A                 lea     edi, [ebx+eax*8+180h]
.text:0026B441                 cmp     [edi], edi
.text:0026B443                 jnz     loc_26B54C
.text:0026B449                 movzx   ecx, word ptr [esi]
.text:0026B44C                 mov     eax, ecx
.text:0026B44E                 and     ecx, 7
.text:0026B451                 mov     dl, 1
.text:0026B453                 shr     eax, 3
.text:0026B456                 shl     dl, cl
.text:0026B458                 lea     eax, [eax+ebx+160h]
.text:0026B45F                 or      [eax], dl
.text:0026B461                 jmp     loc_26B54C
.text:0026B466 ; ---------------------------------------------------------------------------
.text:0026B466
.text:0026B466 loc_26B466:                             ; CODE XREF: sub_26B1B7+27Ej
.text:0026B466                 lea     eax, [ebx+180h]
.text:0026B46C                 mov     edi, [eax]
.text:0026B46E                 jmp     short loc_26B47C
.text:0026B470 ; ---------------------------------------------------------------------------
.text:0026B470
.text:0026B470 loc_26B470:                             ; CODE XREF: sub_26B1B7+2C7j
.text:0026B470                 cmp     cx, [edi-8]
.text:0026B474                 jbe     loc_26B54C
.text:0026B47A                 mov     edi, [edi]
.text:0026B47C
.text:0026B47C loc_26B47C:                             ; CODE XREF: sub_26B1B7+2B7j
.text:0026B47C                 cmp     eax, edi
.text:0026B47E                 jnz     short loc_26B470
.text:0026B480                 jmp     loc_26B54C
.text:0026B485 ; ---------------------------------------------------------------------------
.text:0026B485
.text:0026B485 loc_26B485:                             ; CODE XREF: sub_26B1B7+256j
.text:0026B485                 mov     ecx, [edi+0Ch]
.text:0026B488                 mov     byte ptr [ebp+arg_0+3], al
.text:0026B48B                 mov     eax, [edi+8]
.text:0026B48E                 cmp     eax, ecx
.text:0026B490                 mov     [ecx], eax
.text:0026B492                 mov     [eax+4], ecx
.text:0026B495                 jnz     short loc_26B4B8
.text:0026B497                 mov     ax, [edi]
.text:0026B49A                 cmp     ax, 80h
.text:0026B49E                 jnb     short loc_26B4B8
.text:0026B4A0                 movzx   ecx, ax
.text:0026B4A3                 mov     eax, ecx
.text:0026B4A5                 and     ecx, 7
.text:0026B4A8                 mov     dl, 1
.text:0026B4AA                 shr     eax, 3
.text:0026B4AD                 shl     dl, cl
.text:0026B4AF                 lea     eax, [eax+ebx+160h]
.text:0026B4B6                 xor     [eax], dl
.text:0026B4B8
.text:0026B4B8 loc_26B4B8:                             ; CODE XREF: sub_26B1B7+2DEj
.text:0026B4B8                                         ; sub_26B1B7+2E7j
.text:0026B4B8                 mov     cl, [edi+5]
.text:0026B4BB                 test    cl, 4
.text:0026B4BE                 jz      short loc_26B4E6
.text:0026B4C0                 movzx   eax, word ptr [edi]
.text:0026B4C3                 shl     eax, 4
.text:0026B4C6                 sub     eax, 18h
.text:0026B4C9                 test    cl, 2
.text:0026B4CC                 jz      short loc_26B4D6
.text:0026B4CE                 cmp     eax, 4
.text:0026B4D1                 jbe     short loc_26B4D6
.text:0026B4D3                 sub     eax, 4
.text:0026B4D6
.text:0026B4D6 loc_26B4D6:                             ; CODE XREF: sub_26B1B7+315j
.text:0026B4D6                                         ; sub_26B1B7+31Aj
.text:0026B4D6                 push    0FEEEFEEEh
.text:0026B4DB                 push    eax
.text:0026B4DC                 lea     eax, [edi+18h]
.text:0026B4DF                 push    eax
.text:0026B4E0                 call    ds:dword_485F24
.text:0026B4E6
.text:0026B4E6 loc_26B4E6:                             ; CODE XREF: sub_26B1B7+307j
.text:0026B4E6                 movzx   eax, word ptr [edi]
.text:0026B4E9                 sub     [ebx+30h], eax
.text:0026B4EC                 movzx   eax, word ptr [edi]
.text:0026B4EF                 add     [ebp+var_8], eax
.text:0026B4F2                 mov     cl, byte ptr [ebp+arg_0+3]
.text:0026B4F5                 mov     [esi+5], cl
.text:0026B4F8                 mov     eax, [ebp+var_8]
.text:0026B4FB                 cmp     eax, 0FF00h
.text:0026B500                 ja      short loc_26B564
.text:0026B502                 test    cl, 10h
.text:0026B505                 mov     [esi], ax
.text:0026B508                 jnz     short loc_26B519
.text:0026B50A                 mov     eax, [ebp+var_8]
.text:0026B50D                 mov     ecx, eax
.text:0026B50F                 shl     ecx, 4
.text:0026B512                 mov     [ecx+esi+2], ax
.text:0026B517                 jmp     short loc_26B524
.text:0026B519 ; ---------------------------------------------------------------------------
.text:0026B519
.text:0026B519 loc_26B519:                             ; CODE XREF: sub_26B1B7+351j
.text:0026B519                 movzx   eax, byte ptr [esi+4]
.text:0026B51D                 mov     eax, [ebx+eax*4+60h]
.text:0026B521                 mov     [eax+40h], esi
.text:0026B524
.text:0026B524 loc_26B524:                             ; CODE XREF: sub_26B1B7+360j
.text:0026B524                 and     byte ptr [esi+5], 0F8h
.text:0026B528                 mov     ecx, [ebp+var_8]
.text:0026B52B                 cmp     cx, 80h
.text:0026B530                 jb      loc_26B437
.text:0026B536                 lea     eax, [ebx+180h]
.text:0026B53C                 mov     edi, [eax]
.text:0026B53E                 jmp     short loc_26B548
.text:0026B540 ; ---------------------------------------------------------------------------
.text:0026B540
.text:0026B540 loc_26B540:                             ; CODE XREF: sub_26B1B7+393j
.text:0026B540                 cmp     cx, [edi-8]
.text:0026B544                 jbe     short loc_26B54C
.text:0026B546                 mov     edi, [edi]
.text:0026B548
.text:0026B548 loc_26B548:                             ; CODE XREF: sub_26B1B7+387j
.text:0026B548                 cmp     eax, edi
.text:0026B54A                 jnz     short loc_26B540
.text:0026B54C
.text:0026B54C loc_26B54C:                             ; CODE XREF: sub_26B1B7+28Cj
.text:0026B54C                                         ; sub_26B1B7+2AAj ...
.text:0026B54C                 mov     ecx, [edi+4]
.text:0026B54F                 lea     eax, [esi+8]
.text:0026B552                 mov     [eax], edi
.text:0026B554                 mov     [esi+0Ch], ecx
.text:0026B557                 mov     [ecx], eax
.text:0026B559                 mov     [edi+4], eax
.text:0026B55C                 mov     eax, [ebp+var_8]
.text:0026B55F                 add     [ebx+30h], eax
.text:0026B562                 jmp     short loc_26B56C
.text:0026B564 ; ---------------------------------------------------------------------------
.text:0026B564
.text:0026B564 loc_26B564:                             ; CODE XREF: sub_26B1B7+349j
.text:0026B564                 push    eax
.text:0026B565                 push    esi
.text:0026B566                 push    ebx
.text:0026B567                 call    sub_26B012
.text:0026B56C
.text:0026B56C loc_26B56C:                             ; CODE XREF: sub_26B1B7+3ABj
.text:0026B56C                 mov     edi, [ebp+arg_8]
.text:0026B56F
.text:0026B56F loc_26B56F:                             ; CODE XREF: sub_26B1B7+195j
.text:0026B56F                                         ; sub_26B1B7+1A5j ...
.text:0026B56F                 mov     edx, [ebp+arg_4]
.text:0026B572                 test    dl, 8
.text:0026B575                 jz      short loc_26B59A
.text:0026B577                 mov     esi, [ebp+var_C]
.text:0026B57A                 mov     ecx, [ebp+arg_C]
.text:0026B57D                 cmp     ecx, esi
.text:0026B57F                 jbe     short loc_26B59A
.text:0026B581                 sub     ecx, esi
.text:0026B583                 lea     edi, [esi+edi+10h]
.text:0026B587                 mov     esi, ecx
.text:0026B589                 shr     ecx, 2
.text:0026B58C                 xor     eax, eax
.text:0026B58E                 rep stosd
.text:0026B590                 mov     ecx, esi
.text:0026B592                 and     ecx, 3
.text:0026B595                 rep stosb
.text:0026B597                 mov     edi, [ebp+arg_8]
.text:0026B59A
.text:0026B59A loc_26B59A:                             ; CODE XREF: sub_26B1B7+3BEj
.text:0026B59A                                         ; sub_26B1B7+3C8j
.text:0026B59A                 mov     eax, edx
.text:0026B59C                 shr     eax, 4
.text:0026B59F                 xor     al, [edi+5]
.text:0026B5A2                 shr     edx, 4
.text:0026B5A5                 and     al, 1Fh
.text:0026B5A7                 xor     al, dl
.text:0026B5A9                 mov     [edi+5], al
.text:0026B5AC                 mov     al, 1
.text:0026B5AE
.text:0026B5AE loc_26B5AE:                             ; CODE XREF: sub_26B1B7+B3j
.text:0026B5AE                 pop     edi
.text:0026B5AF                 pop     esi
.text:0026B5B0
.text:0026B5B0 loc_26B5B0:                             ; CODE XREF: sub_26B1B7+14j
.text:0026B5B0                 pop     ebx
.text:0026B5B1                 leave
.text:0026B5B2                 retn    14h
.text:0026B5B2 sub_26B1B7      endp
.text:0026B5B2
.text:0026B5B5 ; [0000002F BYTES: COLLAPSED FUNCTION RtlSizeHeap(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026B5E4 ; [0000011E BYTES: COLLAPSED FUNCTION RtlpInitializeHeapSegment(x,x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026B702
.text:0026B702 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026B702
.text:0026B702 ; Attributes: bp-based frame
.text:0026B702
.text:0026B702 sub_26B702      proc near               ; CODE XREF: sub_26BF57+253p
.text:0026B702
.text:0026B702 var_10          = dword ptr -10h
.text:0026B702 var_C           = dword ptr -0Ch
.text:0026B702 var_8           = dword ptr -8
.text:0026B702 var_4           = dword ptr -4
.text:0026B702 arg_0           = dword ptr  8
.text:0026B702 arg_4           = dword ptr  0Ch
.text:0026B702
.text:0026B702                 push    ebp
.text:0026B703                 mov     ebp, esp
.text:0026B705                 sub     esp, 10h
.text:0026B708                 push    ebx
.text:0026B709                 mov     ebx, [ebp+arg_4]
.text:0026B70C                 push    esi
.text:0026B70D                 lea     esi, [ebx+0FFFh]
.text:0026B713                 shr     esi, 0Ch
.text:0026B716                 mov     eax, esi
.text:0026B718                 shl     eax, 0Ch
.text:0026B71B                 push    edi
.text:0026B71C                 mov     edi, [ebp+arg_0]
.text:0026B71F                 mov     [ebp+var_8], eax
.text:0026B722                 mov     byte ptr [ebp+var_C], 40h
.text:0026B726                 mov     byte ptr [ebp+arg_4+3], 0
.text:0026B72A
.text:0026B72A loc_26B72A:                             ; CODE XREF: sub_26B702+6Ej
.text:0026B72A                 movzx   ecx, byte ptr [ebp+arg_4+3]
.text:0026B72E                 mov     ecx, [edi+ecx*4+60h]
.text:0026B732                 test    ecx, ecx
.text:0026B734                 mov     [ebp+var_4], ecx
.text:0026B737                 jz      short loc_26B75D
.text:0026B739                 cmp     esi, [ecx+30h]
.text:0026B73C                 ja      short loc_26B769
.text:0026B73E                 cmp     eax, [ecx+1Ch]
.text:0026B741                 ja      short loc_26B769
.text:0026B743                 push    0
.text:0026B745                 lea     eax, [ebp+var_8]
.text:0026B748                 push    eax
.text:0026B749                 push    ecx
.text:0026B74A                 push    edi
.text:0026B74B                 call    _RtlpFindAndCommitPages@16 ; RtlpFindAndCommitPages(x,x,x,x)
.text:0026B750                 test    eax, eax
.text:0026B752                 jnz     loc_26B84C
.text:0026B758                 mov     eax, [ebp+var_8]
.text:0026B75B                 jmp     short loc_26B769
.text:0026B75D ; ---------------------------------------------------------------------------
.text:0026B75D
.text:0026B75D loc_26B75D:                             ; CODE XREF: sub_26B702+35j
.text:0026B75D                 cmp     byte ptr [ebp+var_C], 40h
.text:0026B761                 jnz     short loc_26B769
.text:0026B763                 mov     cl, byte ptr [ebp+arg_4+3]
.text:0026B766                 mov     byte ptr [ebp+var_C], cl
.text:0026B769
.text:0026B769 loc_26B769:                             ; CODE XREF: sub_26B702+3Aj
.text:0026B769                                         ; sub_26B702+3Fj ...
.text:0026B769                 inc     byte ptr [ebp+arg_4+3]
.text:0026B76C                 cmp     byte ptr [ebp+arg_4+3], 40h
.text:0026B770                 jb      short loc_26B72A
.text:0026B772                 cmp     byte ptr [ebp+var_C], 40h
.text:0026B776                 jz      loc_26B880
.text:0026B77C                 test    byte ptr [edi+14h], 2
.text:0026B780                 jz      loc_26B880
.text:0026B786                 mov     ecx, [edi+20h]
.text:0026B789                 and     [ebp+var_4], 0
.text:0026B78D                 lea     eax, [ebx+1000h]
.text:0026B793                 cmp     eax, ecx
.text:0026B795                 mov     [ebp+arg_4], eax
.text:0026B798                 mov     [ebp+arg_0], eax
.text:0026B79B                 ja      short loc_26B7A0
.text:0026B79D                 mov     [ebp+arg_0], ecx
.text:0026B7A0
.text:0026B7A0 loc_26B7A0:                             ; CODE XREF: sub_26B702+99j
.text:0026B7A0                 mov     esi, ds:dword_485E70
.text:0026B7A6                 push    4
.text:0026B7A8                 mov     ebx, 2000h
.text:0026B7AD                 push    ebx
.text:0026B7AE                 lea     eax, [ebp+arg_0]
.text:0026B7B1                 push    eax
.text:0026B7B2                 push    0
.text:0026B7B4                 lea     eax, [ebp+var_4]
.text:0026B7B7                 push    eax
.text:0026B7B8                 call    esi
.text:0026B7BA                 test    eax, eax
.text:0026B7BC                 jge     short loc_26B7EC
.text:0026B7BE
.text:0026B7BE loc_26B7BE:                             ; CODE XREF: sub_26B702+E0j
.text:0026B7BE                 mov     ecx, [ebp+arg_4]
.text:0026B7C1                 cmp     [ebp+arg_0], ecx
.text:0026B7C4                 jz      short loc_26B7E4
.text:0026B7C6                 shr     [ebp+arg_0], 1
.text:0026B7C9                 cmp     [ebp+arg_0], ecx
.text:0026B7CC                 jnb     short loc_26B7D1
.text:0026B7CE                 mov     [ebp+arg_0], ecx
.text:0026B7D1
.text:0026B7D1 loc_26B7D1:                             ; CODE XREF: sub_26B702+CAj
.text:0026B7D1                 push    4
.text:0026B7D3                 push    ebx
.text:0026B7D4                 lea     eax, [ebp+arg_0]
.text:0026B7D7                 push    eax
.text:0026B7D8                 push    0
.text:0026B7DA                 lea     eax, [ebp+var_4]
.text:0026B7DD                 push    eax
.text:0026B7DE                 call    esi
.text:0026B7E0                 test    eax, eax
.text:0026B7E2                 jl      short loc_26B7BE
.text:0026B7E4
.text:0026B7E4 loc_26B7E4:                             ; CODE XREF: sub_26B702+C2j
.text:0026B7E4                 test    eax, eax
.text:0026B7E6                 jl      loc_26B880
.text:0026B7EC
.text:0026B7EC loc_26B7EC:                             ; CODE XREF: sub_26B702+BAj
.text:0026B7EC                 mov     eax, [ebp+arg_0]
.text:0026B7EF                 add     [edi+20h], eax
.text:0026B7F2                 mov     ecx, [ebp+arg_4]
.text:0026B7F5                 mov     eax, [edi+24h]
.text:0026B7F8                 cmp     ecx, eax
.text:0026B7FA                 mov     [ebp+var_10], ecx
.text:0026B7FD                 ja      short loc_26B802
.text:0026B7FF                 mov     [ebp+var_10], eax
.text:0026B802
.text:0026B802 loc_26B802:                             ; CODE XREF: sub_26B702+FBj
.text:0026B802                 push    4
.text:0026B804                 push    1000h
.text:0026B809                 lea     eax, [ebp+var_10]
.text:0026B80C                 push    eax
.text:0026B80D                 push    0
.text:0026B80F                 lea     eax, [ebp+var_4]
.text:0026B812                 push    eax
.text:0026B813                 call    esi
.text:0026B815                 mov     esi, eax
.text:0026B817                 test    esi, esi
.text:0026B819                 jl      short loc_26B86D
.text:0026B81B                 mov     eax, [ebp+var_4]
.text:0026B81E                 mov     ecx, [ebp+arg_0]
.text:0026B821                 add     ecx, eax
.text:0026B823                 push    ecx
.text:0026B824                 mov     ecx, [ebp+var_10]
.text:0026B827                 add     ecx, eax
.text:0026B829                 push    ecx
.text:0026B82A                 push    eax
.text:0026B82B                 push    0
.text:0026B82D                 push    [ebp+var_C]
.text:0026B830                 push    eax
.text:0026B831                 push    edi
.text:0026B832                 call    _RtlpInitializeHeapSegment@28 ; RtlpInitializeHeapSegment(x,x,x,x,x,x,x)
.text:0026B837                 test    al, al
.text:0026B839                 jnz     short loc_26B840
.text:0026B83B                 mov     esi, 0C0000017h
.text:0026B840
.text:0026B840 loc_26B840:                             ; CODE XREF: sub_26B702+137j
.text:0026B840                 test    esi, esi
.text:0026B842                 jl      short loc_26B86D
.text:0026B844                 mov     eax, [ebp+var_4]
.text:0026B847                 mov     eax, [eax+28h]
.text:0026B84A                 jmp     short loc_26B882
.text:0026B84C ; ---------------------------------------------------------------------------
.text:0026B84C
.text:0026B84C loc_26B84C:                             ; CODE XREF: sub_26B702+50j
.text:0026B84C                 shr     [ebp+var_8], 4
.text:0026B850                 push    0
.text:0026B852                 lea     ecx, [ebp+var_8]
.text:0026B855                 push    ecx
.text:0026B856                 push    eax
.text:0026B857                 push    edi
.text:0026B858                 call    _RtlpCoalesceFreeBlocks@16 ; RtlpCoalesceFreeBlocks(x,x,x,x)
.text:0026B85D                 push    [ebp+var_8]
.text:0026B860                 mov     esi, eax
.text:0026B862                 push    esi
.text:0026B863                 push    edi
.text:0026B864                 call    sub_26B012
.text:0026B869                 mov     eax, esi
.text:0026B86B                 jmp     short loc_26B882
.text:0026B86D ; ---------------------------------------------------------------------------
.text:0026B86D
.text:0026B86D loc_26B86D:                             ; CODE XREF: sub_26B702+117j
.text:0026B86D                                         ; sub_26B702+140j
.text:0026B86D                 push    8000h
.text:0026B872                 lea     eax, [ebp+arg_0]
.text:0026B875                 push    eax
.text:0026B876                 lea     eax, [ebp+var_4]
.text:0026B879                 push    eax
.text:0026B87A                 call    ds:dword_485E74
.text:0026B880
.text:0026B880 loc_26B880:                             ; CODE XREF: sub_26B702+74j
.text:0026B880                                         ; sub_26B702+7Ej ...
.text:0026B880                 xor     eax, eax
.text:0026B882
.text:0026B882 loc_26B882:                             ; CODE XREF: sub_26B702+148j
.text:0026B882                                         ; sub_26B702+169j
.text:0026B882                 pop     edi
.text:0026B883                 pop     esi
.text:0026B884                 pop     ebx
.text:0026B885                 leave
.text:0026B886                 retn    8
.text:0026B886 sub_26B702      endp
.text:0026B886
.text:0026B889 ; [000002AA BYTES: COLLAPSED FUNCTION RtlpDeCommitFreeBlock(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026BB33
.text:0026BB33 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026BB33
.text:0026BB33
.text:0026BB33 sub_26BB33      proc near               ; CODE XREF: sub_269696+49p
.text:0026BB33                                         ; HeapCreate(x,x,x)+36p
.text:0026BB33                 push    68h
.text:0026BB35                 push    offset dword_4CE950
.text:0026BB3A                 call    __SEH_prolog
.text:0026BB3F                 xor     esi, esi
.text:0026BB41                 mov     [ebp-1Ch], esi
.text:0026BB44                 xor     ebx, ebx
.text:0026BB46                 push    0Ch
.text:0026BB48                 pop     ecx
.text:0026BB49                 xor     eax, eax
.text:0026BB4B                 lea     edi, [ebp-78h]
.text:0026BB4E                 rep stosd
.text:0026BB50                 mov     eax, [ebp+1Ch]
.text:0026BB53                 cmp     eax, esi
.text:0026BB55                 jz      short loc_26BB96
.text:0026BB57                 mov     [ebp-4], esi
.text:0026BB5A                 cmp     dword ptr [eax], 30h
.text:0026BB5D                 jnz     short loc_26BB6E
.text:0026BB5F                 push    30h
.text:0026BB61                 push    eax
.text:0026BB62                 lea     eax, [ebp-78h]
.text:0026BB65                 push    eax
.text:0026BB66                 call    unknown_libname_80 ; XBOX Flirt v2.00 Final.
.text:0026BB6B                 add     esp, 0Ch
.text:0026BB6E
.text:0026BB6E loc_26BB6E:                             ; CODE XREF: sub_26BB33+2Aj
.text:0026BB6E                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:0026BB72                 jmp     short loc_26BB8E
.text:0026BB74 ; ---------------------------------------------------------------------------
.text:0026BB74                 mov     eax, [ebp-14h]
.text:0026BB77                 mov     eax, [eax]
.text:0026BB79                 mov     eax, [eax]
.text:0026BB7B                 mov     [ebp-2Ch], eax
.text:0026BB7E                 xor     eax, eax
.text:0026BB80                 inc     eax
.text:0026BB81                 retn
.text:0026BB82 ; ---------------------------------------------------------------------------
.text:0026BB82                 mov     esp, [ebp-18h]
.text:0026BB85                 mov     ebx, [ebp-2Ch]
.text:0026BB88                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:0026BB8C                 xor     esi, esi
.text:0026BB8E
.text:0026BB8E loc_26BB8E:                             ; CODE XREF: sub_26BB33+3Fj
.text:0026BB8E                 cmp     ebx, esi
.text:0026BB90                 jl      loc_26BEDE
.text:0026BB96
.text:0026BB96 loc_26BB96:                             ; CODE XREF: sub_26BB33+22j
.text:0026BB96                 test    byte_5E7352, 20h
.text:0026BB9D                 jz      short loc_26BBA3
.text:0026BB9F                 or      byte ptr [ebp+8], 80h
.text:0026BBA3
.text:0026BBA3 loc_26BBA3:                             ; CODE XREF: sub_26BB33+6Aj
.text:0026BBA3                 cmp     [ebp-74h], esi
.text:0026BBA6                 jnz     short loc_26BBB0
.text:0026BBA8                 mov     eax, dword_56E270
.text:0026BBAD                 mov     [ebp-74h], eax
.text:0026BBB0
.text:0026BBB0 loc_26BBB0:                             ; CODE XREF: sub_26BB33+73j
.text:0026BBB0                 cmp     [ebp-70h], esi
.text:0026BBB3                 jnz     short loc_26BBBD
.text:0026BBB5                 mov     eax, dword_56E274
.text:0026BBBA                 mov     [ebp-70h], eax
.text:0026BBBD
.text:0026BBBD loc_26BBBD:                             ; CODE XREF: sub_26BB33+80j
.text:0026BBBD                 cmp     [ebp-6Ch], esi
.text:0026BBC0                 jnz     short loc_26BBCA
.text:0026BBC2                 mov     eax, dword_56E27C
.text:0026BBC7                 mov     [ebp-6Ch], eax
.text:0026BBCA
.text:0026BBCA loc_26BBCA:                             ; CODE XREF: sub_26BB33+8Dj
.text:0026BBCA                 cmp     [ebp-68h], esi
.text:0026BBCD                 jnz     short loc_26BBD7
.text:0026BBCF                 mov     eax, dword_56E278
.text:0026BBD4                 mov     [ebp-68h], eax
.text:0026BBD7
.text:0026BBD7 loc_26BBD7:                             ; CODE XREF: sub_26BB33+9Aj
.text:0026BBD7                 cmp     [ebp-64h], esi
.text:0026BBDA                 jnz     short loc_26BBE3
.text:0026BBDC                 mov     dword ptr [ebp-64h], 7FFDEFFFh
.text:0026BBE3
.text:0026BBE3 loc_26BBE3:                             ; CODE XREF: sub_26BB33+A7j
.text:0026BBE3                 cmp     [ebp-60h], esi
.text:0026BBE6                 jz      short loc_26BBF1
.text:0026BBE8                 cmp     dword ptr [ebp-60h], (offset loc_FEFFF+1)
.text:0026BBEF                 jbe     short loc_26BBF8
.text:0026BBF1
.text:0026BBF1 loc_26BBF1:                             ; CODE XREF: sub_26BB33+B3j
.text:0026BBF1                 mov     dword ptr [ebp-60h], (offset loc_FEFFF+1)
.text:0026BBF8
.text:0026BBF8 loc_26BBF8:                             ; CODE XREF: sub_26BB33+BCj
.text:0026BBF8                 mov     eax, [ebp+14h]
.text:0026BBFB                 cmp     eax, esi
.text:0026BBFD                 jnz     short loc_26BC25
.text:0026BBFF                 mov     dword ptr [ebp+14h], 1000h
.text:0026BC06                 mov     eax, [ebp+10h]
.text:0026BC09                 cmp     eax, esi
.text:0026BC0B                 jnz     short loc_26BC16
.text:0026BC0D                 mov     dword ptr [ebp+10h], offset dword_40000
.text:0026BC14                 jmp     short loc_26BC52
.text:0026BC16 ; ---------------------------------------------------------------------------
.text:0026BC16
.text:0026BC16 loc_26BC16:                             ; CODE XREF: sub_26BB33+D8j
.text:0026BC16                 add     eax, 0FFFh
.text:0026BC1B                 and     eax, 0FFFFF000h
.text:0026BC20
.text:0026BC20 loc_26BC20:                             ; CODE XREF: sub_26BB33+112j
.text:0026BC20                 mov     [ebp+10h], eax
.text:0026BC23                 jmp     short loc_26BC52
.text:0026BC25 ; ---------------------------------------------------------------------------
.text:0026BC25
.text:0026BC25 loc_26BC25:                             ; CODE XREF: sub_26BB33+CAj
.text:0026BC25                 add     eax, 0FFFh
.text:0026BC2A                 mov     ecx, 0FFFFF000h
.text:0026BC2F                 and     eax, ecx
.text:0026BC31                 mov     [ebp+14h], eax
.text:0026BC34                 mov     edx, [ebp+10h]
.text:0026BC37                 cmp     edx, esi
.text:0026BC39                 jnz     short loc_26BC47
.text:0026BC3B                 add     eax, 0FFFFh
.text:0026BC40                 and     eax, 0FFFF0000h
.text:0026BC45                 jmp     short loc_26BC20
.text:0026BC47 ; ---------------------------------------------------------------------------
.text:0026BC47
.text:0026BC47 loc_26BC47:                             ; CODE XREF: sub_26BB33+106j
.text:0026BC47                 add     edx, 0FFFh
.text:0026BC4D                 and     edx, ecx
.text:0026BC4F                 mov     [ebp+10h], edx
.text:0026BC52
.text:0026BC52 loc_26BC52:                             ; CODE XREF: sub_26BB33+E1j
.text:0026BC52                                         ; sub_26BB33+F0j
.text:0026BC52                 mov     dword ptr [ebp-24h], 590h
.text:0026BC59                 test    byte ptr [ebp+8], 1
.text:0026BC5D                 jnz     short loc_26BC77
.text:0026BC5F                 cmp     [ebp+18h], esi
.text:0026BC62                 jz      short loc_26BC6A
.text:0026BC64                 or      byte ptr [ebp+0Bh], 80h
.text:0026BC68                 jmp     short loc_26BC80
.text:0026BC6A ; ---------------------------------------------------------------------------
.text:0026BC6A
.text:0026BC6A loc_26BC6A:                             ; CODE XREF: sub_26BB33+12Fj
.text:0026BC6A                 mov     dword ptr [ebp-24h], 5ACh
.text:0026BC71                 or      dword ptr [ebp+18h], 0FFFFFFFFh
.text:0026BC75                 jmp     short loc_26BC80
.text:0026BC77 ; ---------------------------------------------------------------------------
.text:0026BC77
.text:0026BC77 loc_26BC77:                             ; CODE XREF: sub_26BB33+12Aj
.text:0026BC77                 cmp     [ebp+18h], esi
.text:0026BC7A                 jnz     loc_26BEDE
.text:0026BC80
.text:0026BC80 loc_26BC80:                             ; CODE XREF: sub_26BB33+135j
.text:0026BC80                                         ; sub_26BB33+142j
.text:0026BC80                 mov     edi, [ebp+0Ch]
.text:0026BC83                 cmp     edi, esi
.text:0026BC85                 jz      loc_26BD55
.text:0026BC8B                 cmp     [ebp-54h], esi
.text:0026BC8E                 jz      short loc_26BCCB
.text:0026BC90                 mov     ebx, [ebp-5Ch]
.text:0026BC93                 cmp     ebx, esi
.text:0026BC95                 jz      loc_26BEDE
.text:0026BC9B                 mov     eax, [ebp-58h]
.text:0026BC9E                 cmp     eax, esi
.text:0026BCA0                 jz      loc_26BEDE
.text:0026BCA6                 cmp     ebx, eax
.text:0026BCA8                 ja      loc_26BEDE
.text:0026BCAE                 test    byte ptr [ebp+8], 2
.text:0026BCB2                 jnz     loc_26BEDE
.text:0026BCB8                 mov     [ebp-20h], edi
.text:0026BCBB                 add     ebx, edi
.text:0026BCBD                 mov     [ebp+10h], eax
.text:0026BCC0                 mov     ecx, 400h
.text:0026BCC5                 xor     eax, eax
.text:0026BCC7                 rep stosd
.text:0026BCC9                 jmp     short loc_26BD46
.text:0026BCCB ; ---------------------------------------------------------------------------
.text:0026BCCB
.text:0026BCCB loc_26BCCB:                             ; CODE XREF: sub_26BB33+15Bj
.text:0026BCCB                 lea     eax, [ebp-48h]
.text:0026BCCE                 push    eax
.text:0026BCCF                 push    dword ptr [ebp+0Ch]
.text:0026BCD2                 mov     esi, ds:dword_485E78
.text:0026BCD8                 call    esi
.text:0026BCDA                 test    eax, eax
.text:0026BCDC                 jl      loc_26BEDE
.text:0026BCE2                 mov     edi, [ebp-48h]
.text:0026BCE5                 cmp     edi, [ebp+0Ch]
.text:0026BCE8                 jnz     loc_26BEDE
.text:0026BCEE                 cmp     dword ptr [ebp-38h], 10000h
.text:0026BCF5                 jz      loc_26BEDE
.text:0026BCFB                 mov     [ebp-20h], edi
.text:0026BCFE                 mov     eax, 1000h
.text:0026BD03                 cmp     [ebp-38h], eax
.text:0026BD06                 jnz     short loc_26BD41
.text:0026BD08                 mov     ecx, 400h
.text:0026BD0D                 xor     eax, eax
.text:0026BD0F                 rep stosd
.text:0026BD11                 mov     eax, [ebp-3Ch]
.text:0026BD14                 mov     [ebp+14h], eax
.text:0026BD17                 mov     ecx, [ebp-20h]
.text:0026BD1A                 lea     ebx, [eax+ecx]
.text:0026BD1D                 lea     eax, [ebp-48h]
.text:0026BD20                 push    eax
.text:0026BD21                 push    ebx
.text:0026BD22                 call    esi
.text:0026BD24                 mov     ecx, [ebp+14h]
.text:0026BD27                 mov     [ebp+10h], ecx
.text:0026BD2A                 test    eax, eax
.text:0026BD2C                 jl      short loc_26BD46
.text:0026BD2E                 cmp     dword ptr [ebp-38h], 2000h
.text:0026BD35                 jnz     short loc_26BD46
.text:0026BD37                 mov     eax, [ebp-3Ch]
.text:0026BD3A                 add     eax, ecx
.text:0026BD3C                 mov     [ebp+10h], eax
.text:0026BD3F                 jmp     short loc_26BD46
.text:0026BD41 ; ---------------------------------------------------------------------------
.text:0026BD41
.text:0026BD41 loc_26BD41:                             ; CODE XREF: sub_26BB33+1D3j
.text:0026BD41                 mov     [ebp+14h], eax
.text:0026BD44                 mov     ebx, edi
.text:0026BD46
.text:0026BD46 loc_26BD46:                             ; CODE XREF: sub_26BB33+196j
.text:0026BD46                                         ; sub_26BB33+1F9j ...
.text:0026BD46                 mov     dword ptr [ebp-28h], 1
.text:0026BD4D                 mov     eax, [ebp+0Ch]
.text:0026BD50                 mov     [ebp-1Ch], eax
.text:0026BD53                 jmp     short loc_26BD91
.text:0026BD55 ; ---------------------------------------------------------------------------
.text:0026BD55
.text:0026BD55 loc_26BD55:                             ; CODE XREF: sub_26BB33+152j
.text:0026BD55                 cmp     [ebp-54h], esi
.text:0026BD58                 jnz     loc_26BEDE
.text:0026BD5E                 push    4
.text:0026BD60                 push    2000h
.text:0026BD65                 lea     eax, [ebp+10h]
.text:0026BD68                 push    eax
.text:0026BD69                 push    esi
.text:0026BD6A                 lea     eax, [ebp-1Ch]
.text:0026BD6D                 push    eax
.text:0026BD6E                 call    ds:dword_485E70
.text:0026BD74                 test    eax, eax
.text:0026BD76                 jl      loc_26BEDE
.text:0026BD7C                 mov     [ebp-28h], esi
.text:0026BD7F                 cmp     [ebp+14h], esi
.text:0026BD82                 jnz     short loc_26BD8B
.text:0026BD84                 mov     dword ptr [ebp+14h], 1000h
.text:0026BD8B
.text:0026BD8B loc_26BD8B:                             ; CODE XREF: sub_26BB33+24Fj
.text:0026BD8B                 mov     ebx, [ebp-1Ch]
.text:0026BD8E                 mov     [ebp-20h], ebx
.text:0026BD91
.text:0026BD91 loc_26BD91:                             ; CODE XREF: sub_26BB33+220j
.text:0026BD91                 cmp     [ebp-20h], ebx
.text:0026BD94                 jnz     short loc_26BDD6
.text:0026BD96                 push    4
.text:0026BD98                 push    1000h
.text:0026BD9D                 lea     eax, [ebp+14h]
.text:0026BDA0                 push    eax
.text:0026BDA1                 push    0
.text:0026BDA3                 lea     eax, [ebp-20h]
.text:0026BDA6                 push    eax
.text:0026BDA7                 call    ds:dword_485E70
.text:0026BDAD                 test    eax, eax
.text:0026BDAF                 jge     short loc_26BDD3
.text:0026BDB1                 cmp     dword ptr [ebp+0Ch], 0
.text:0026BDB5                 jnz     loc_26BEDE
.text:0026BDBB                 push    8000h
.text:0026BDC0                 lea     eax, [ebp+10h]
.text:0026BDC3                 push    eax
.text:0026BDC4                 lea     eax, [ebp-1Ch]
.text:0026BDC7                 push    eax
.text:0026BDC8                 call    ds:dword_485E74
.text:0026BDCE                 jmp     loc_26BEDE
.text:0026BDD3 ; ---------------------------------------------------------------------------
.text:0026BDD3
.text:0026BDD3 loc_26BDD3:                             ; CODE XREF: sub_26BB33+27Cj
.text:0026BDD3                 add     ebx, [ebp+14h]
.text:0026BDD6
.text:0026BDD6 loc_26BDD6:                             ; CODE XREF: sub_26BB33+261j
.text:0026BDD6                 mov     edx, [ebp-1Ch]
.text:0026BDD9                 lea     eax, [edx+597h]
.text:0026BDDF                 and     eax, 0FFFFFFF8h
.text:0026BDE2                 mov     esi, [ebp-24h]
.text:0026BDE5                 mov     edi, 80h
.text:0026BDEA                 add     esi, edi
.text:0026BDEC                 add     edx, 4Ch
.text:0026BDEF                 push    8
.text:0026BDF1                 pop     ecx
.text:0026BDF2
.text:0026BDF2 loc_26BDF2:                             ; CODE XREF: sub_26BB33+2C7j
.text:0026BDF2                 mov     [edx], eax
.text:0026BDF4                 mov     edx, eax
.text:0026BDF6                 add     eax, 10h
.text:0026BDF9                 dec     ecx
.text:0026BDFA                 jnz     short loc_26BDF2
.text:0026BDFC                 mov     ecx, eax
.text:0026BDFE                 and     dword ptr [edx], 0
.text:0026BE01                 test    byte_5E7351, 8
.text:0026BE08                 jz      short loc_26BE2B
.text:0026BE0A                 add     eax, 7
.text:0026BE0D                 and     eax, 0FFFFFFF8h
.text:0026BE10                 mov     ecx, [ebp-1Ch]
.text:0026BE13                 mov     [ecx+17Ch], eax
.text:0026BE19                 mov     eax, 60Ch
.text:0026BE1E                 add     esi, eax
.text:0026BE20                 mov     ecx, [ebp-1Ch]
.text:0026BE23                 mov     ecx, [ecx+17Ch]
.text:0026BE29                 add     ecx, eax
.text:0026BE2B
.text:0026BE2B loc_26BE2B:                             ; CODE XREF: sub_26BB33+2D5j
.text:0026BE2B                 add     esi, 0Fh
.text:0026BE2E                 and     esi, 0FFFFFFF0h
.text:0026BE31                 mov     eax, esi
.text:0026BE33                 shr     eax, 4
.text:0026BE36                 mov     edx, [ebp-1Ch]
.text:0026BE39                 mov     [edx], ax
.text:0026BE3C                 mov     eax, [ebp-1Ch]
.text:0026BE3F                 mov     byte ptr [eax+5], 1
.text:0026BE43                 mov     eax, [ebp-1Ch]
.text:0026BE46                 mov     dword ptr [eax+10h], 0EEFFEEFFh
.text:0026BE4D                 mov     edx, [ebp-1Ch]
.text:0026BE50                 mov     eax, [ebp+8]
.text:0026BE53                 mov     [edx+14h], eax
.text:0026BE56                 and     eax, 6001007Dh
.text:0026BE5B                 mov     edx, [ebp-1Ch]
.text:0026BE5E                 mov     [edx+18h], eax
.text:0026BE61                 mov     eax, [ebp-1Ch]
.text:0026BE64                 or      word ptr [eax+170h], 0FFFFh
.text:0026BE6D                 mov     edx, ecx
.text:0026BE6F                 mov     eax, [ebp-1Ch]
.text:0026BE72                 sub     edx, eax
.text:0026BE74                 mov     [eax+3Ah], dx
.text:0026BE78                 mov     eax, [ebp-1Ch]
.text:0026BE7B                 and     dword ptr [eax+3Ch], 0
.text:0026BE7F                 mov     eax, [ebp-1Ch]
.text:0026BE82                 add     eax, 180h
.text:0026BE87
.text:0026BE87 loc_26BE87:                             ; CODE XREF: sub_26BB33+35Dj
.text:0026BE87                 mov     [eax+4], eax
.text:0026BE8A                 mov     [eax], eax
.text:0026BE8C                 add     eax, 8
.text:0026BE8F                 dec     edi
.text:0026BE90                 jnz     short loc_26BE87
.text:0026BE92                 mov     eax, [ebp-1Ch]
.text:0026BE95                 lea     edx, [eax+58h]
.text:0026BE98                 mov     [eax+5Ch], edx
.text:0026BE9B                 mov     eax, [ebp-1Ch]
.text:0026BE9E                 mov     edx, [eax+5Ch]
.text:0026BEA1                 mov     [eax+58h], edx
.text:0026BEA4                 mov     edi, [ebp+18h]
.text:0026BEA7                 cmp     edi, 0FFFFFFFFh
.text:0026BEAA                 jnz     short loc_26BEB5
.text:0026BEAC                 mov     edi, ecx
.text:0026BEAE                 push    ecx
.text:0026BEAF                 call    ds:dword_485D80
.text:0026BEB5
.text:0026BEB5 loc_26BEB5:                             ; CODE XREF: sub_26BB33+377j
.text:0026BEB5                 mov     eax, [ebp-1Ch]
.text:0026BEB8                 mov     [eax+580h], edi
.text:0026BEBE                 mov     eax, [ebp-20h]
.text:0026BEC1                 mov     ecx, [ebp+10h]
.text:0026BEC4                 add     ecx, eax
.text:0026BEC6                 push    ecx
.text:0026BEC7                 push    ebx
.text:0026BEC8                 push    eax
.text:0026BEC9                 push    dword ptr [ebp-28h]
.text:0026BECC                 push    0
.text:0026BECE                 mov     eax, [ebp-1Ch]
.text:0026BED1                 add     esi, eax
.text:0026BED3                 push    esi
.text:0026BED4                 push    eax
.text:0026BED5                 call    _RtlpInitializeHeapSegment@28 ; RtlpInitializeHeapSegment(x,x,x,x,x,x,x)
.text:0026BEDA                 test    al, al
.text:0026BEDC                 jnz     short loc_26BEE2
.text:0026BEDE
.text:0026BEDE loc_26BEDE:                             ; CODE XREF: sub_26BB33+5Dj
.text:0026BEDE                                         ; sub_26BB33+147j ...
.text:0026BEDE                 xor     eax, eax
.text:0026BEE0                 jmp     short loc_26BF4F
.text:0026BEE2 ; ---------------------------------------------------------------------------
.text:0026BEE2
.text:0026BEE2 loc_26BEE2:                             ; CODE XREF: sub_26BB33+3A9j
.text:0026BEE2                 mov     eax, [ebp-1Ch]
.text:0026BEE5                 and     word ptr [eax+38h], 0
.text:0026BEEA                 mov     eax, [ebp-1Ch]
.text:0026BEED                 mov     ecx, [ebp-74h]
.text:0026BEF0                 mov     [eax+20h], ecx
.text:0026BEF3                 mov     eax, [ebp-1Ch]
.text:0026BEF6                 mov     ecx, [ebp-70h]
.text:0026BEF9                 mov     [eax+24h], ecx
.text:0026BEFC                 mov     eax, [ebp-6Ch]
.text:0026BEFF                 shr     eax, 4
.text:0026BF02                 mov     ecx, [ebp-1Ch]
.text:0026BF05                 mov     [ecx+28h], eax
.text:0026BF08                 mov     eax, [ebp-68h]
.text:0026BF0B                 shr     eax, 4
.text:0026BF0E                 mov     ecx, [ebp-1Ch]
.text:0026BF11                 mov     [ecx+2Ch], eax
.text:0026BF14                 mov     eax, [ebp-1Ch]
.text:0026BF17                 mov     ecx, [ebp-64h]
.text:0026BF1A                 mov     [eax+34h], ecx
.text:0026BF1D                 mov     eax, [ebp-60h]
.text:0026BF20                 add     eax, 0Fh
.text:0026BF23                 shr     eax, 4
.text:0026BF26                 mov     ecx, [ebp-1Ch]
.text:0026BF29                 mov     [ecx+1Ch], eax
.text:0026BF2C                 mov     eax, [ebp-1Ch]
.text:0026BF2F                 mov     ecx, [ebp-54h]
.text:0026BF32                 mov     [eax+584h], ecx
.text:0026BF38                 mov     eax, [ebp-1Ch]
.text:0026BF3B                 mov     dword ptr [eax+50h], 1Fh
.text:0026BF42                 mov     eax, [ebp-1Ch]
.text:0026BF45                 mov     dword ptr [eax+54h], 0FFFFFFF0h
.text:0026BF4C                 mov     eax, [ebp-1Ch]
.text:0026BF4F
.text:0026BF4F loc_26BF4F:                             ; CODE XREF: sub_26BB33+3ADj
.text:0026BF4F                 call    __SEH_epilog
.text:0026BF54                 retn    18h
.text:0026BF54 sub_26BB33      endp
.text:0026BF54
.text:0026BF57
.text:0026BF57 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026BF57
.text:0026BF57
.text:0026BF57 sub_26BF57      proc near               ; CODE XREF: unknown_libname_44+15p
.text:0026BF57                                         ; sub_26C8C6+59Dp ...
.text:0026BF57                 push    180h
.text:0026BF5C                 push    offset dword_4CE960
.text:0026BF61                 call    __SEH_prolog
.text:0026BF66                 mov     esi, [ebp+8]
.text:0026BF69                 mov     ebx, esi
.text:0026BF6B                 mov     [ebp-88h], ebx
.text:0026BF71                 mov     byte ptr [ebp-1Ah], 0
.text:0026BF75                 mov     ecx, [ebp+0Ch]
.text:0026BF78                 or      ecx, [esi+18h]
.text:0026BF7B                 mov     [ebp+0Ch], ecx
.text:0026BF7E                 mov     eax, [ebp+10h]
.text:0026BF81                 test    eax, eax
.text:0026BF83                 jnz     short loc_26BF86
.text:0026BF85                 inc     eax
.text:0026BF86
.text:0026BF86 loc_26BF86:                             ; CODE XREF: sub_26BF57+2Cj
.text:0026BF86                 add     eax, 1Fh
.text:0026BF89                 and     eax, 0FFFFFFF0h
.text:0026BF8C                 mov     [ebp-20h], eax
.text:0026BF8F                 mov     edi, eax
.text:0026BF91                 shr     edi, 4
.text:0026BF94                 mov     [ebp-28h], edi
.text:0026BF97                 and     dword ptr [ebp-4], 0
.text:0026BF9B                 test    cl, 1
.text:0026BF9E                 jnz     short loc_26BFB0
.text:0026BFA0                 push    dword ptr [esi+580h]
.text:0026BFA6                 call    ds:dword_485D84
.text:0026BFAC                 mov     byte ptr [ebp-1Ah], 1
.text:0026BFB0
.text:0026BFB0 loc_26BFB0:                             ; CODE XREF: sub_26BF57+47j
.text:0026BFB0                 cmp     edi, 80h
.text:0026BFB6                 jnb     loc_26C14D
.text:0026BFBC                 lea     eax, [esi+edi*8+180h]
.text:0026BFC3                 mov     [ebp-2Ch], eax
.text:0026BFC6                 cmp     [eax], eax
.text:0026BFC8                 jz      loc_26C052
.text:0026BFCE                 mov     eax, [eax+4]
.text:0026BFD1                 sub     eax, 8
.text:0026BFD4                 mov     [ebp-34h], eax
.text:0026BFD7                 mov     dl, [eax+5]
.text:0026BFDA                 mov     [ebp-19h], dl
.text:0026BFDD                 mov     ecx, [eax+8]
.text:0026BFE0                 mov     [ebp-120h], ecx
.text:0026BFE6                 mov     edi, [eax+0Ch]
.text:0026BFE9                 mov     [ebp-13Ch], edi
.text:0026BFEF                 mov     [edi], ecx
.text:0026BFF1                 mov     [ecx+4], edi
.text:0026BFF4                 cmp     ecx, edi
.text:0026BFF6                 jnz     short loc_26C02E
.text:0026BFF8                 movzx   ecx, word ptr [eax]
.text:0026BFFB                 mov     edi, ecx
.text:0026BFFD                 shr     edi, 3
.text:0026C000                 mov     [ebp-90h], edi
.text:0026C006                 and     ecx, 7
.text:0026C009                 xor     edi, edi
.text:0026C00B                 inc     edi
.text:0026C00C                 shl     edi, cl
.text:0026C00E                 mov     [ebp-0F0h], edi
.text:0026C014                 mov     ecx, [ebp-90h]
.text:0026C01A                 lea     ecx, [ecx+esi+160h]
.text:0026C021                 mov     [ebp-4Ch], ecx
.text:0026C024                 movzx   ecx, byte ptr [ecx]
.text:0026C027                 xor     ecx, edi
.text:0026C029                 mov     edi, [ebp-4Ch]
.text:0026C02C                 mov     [edi], cl
.text:0026C02E
.text:0026C02E loc_26C02E:                             ; CODE XREF: sub_26BF57+9Fj
.text:0026C02E                 mov     ecx, [ebp-28h]
.text:0026C031                 sub     [esi+30h], ecx
.text:0026C034                 mov     [ebp-38h], eax
.text:0026C037                 and     edx, 10h
.text:0026C03A                 or      dl, 1
.text:0026C03D                 mov     [eax+5], dl
.text:0026C040                 mov     ecx, [ebp-20h]
.text:0026C043                 sub     ecx, [ebp+10h]
.text:0026C046                 mov     [eax+6], cl
.text:0026C049                 mov     byte ptr [eax+7], 0
.text:0026C04D                 jmp     loc_26C542
.text:0026C052 ; ---------------------------------------------------------------------------
.text:0026C052
.text:0026C052 loc_26C052:                             ; CODE XREF: sub_26BF57+71j
.text:0026C052                 mov     ecx, [ebp-28h]
.text:0026C055                 mov     edx, ecx
.text:0026C057                 shr     edx, 5
.text:0026C05A                 mov     [ebp-0A0h], edx
.text:0026C060                 lea     edi, [esi+edx*4+160h]
.text:0026C067                 mov     [ebp-30h], edi
.text:0026C06A                 and     ecx, 1Fh
.text:0026C06D                 xor     eax, eax
.text:0026C06F                 inc     eax
.text:0026C070                 shl     eax, cl
.text:0026C072                 dec     eax
.text:0026C073                 not     eax
.text:0026C075                 and     eax, [edi]
.text:0026C077                 mov     [ebp-40h], eax
.text:0026C07A                 add     edi, 4
.text:0026C07D                 mov     [ebp-30h], edi
.text:0026C080                 sub     edx, 0
.text:0026C083                 jz      short loc_26C093
.text:0026C085                 dec     edx
.text:0026C086                 jz      short loc_26C0AA
.text:0026C088                 dec     edx
.text:0026C089                 jz      short loc_26C0C1
.text:0026C08B                 dec     edx
.text:0026C08C                 jz      short loc_26C0D8
.text:0026C08E                 jmp     loc_26C156
.text:0026C093 ; ---------------------------------------------------------------------------
.text:0026C093
.text:0026C093 loc_26C093:                             ; CODE XREF: sub_26BF57+12Cj
.text:0026C093                 test    eax, eax
.text:0026C095                 jz      short loc_26C09F
.text:0026C097                 lea     edi, [esi+180h]
.text:0026C09D                 jmp     short loc_26C0E2
.text:0026C09F ; ---------------------------------------------------------------------------
.text:0026C09F
.text:0026C09F loc_26C09F:                             ; CODE XREF: sub_26BF57+13Ej
.text:0026C09F                 mov     eax, [edi]
.text:0026C0A1                 mov     [ebp-40h], eax
.text:0026C0A4                 add     edi, 4
.text:0026C0A7                 mov     [ebp-30h], edi
.text:0026C0AA
.text:0026C0AA loc_26C0AA:                             ; CODE XREF: sub_26BF57+12Fj
.text:0026C0AA                 test    eax, eax
.text:0026C0AC                 jz      short loc_26C0B6
.text:0026C0AE                 lea     edi, [esi+280h]
.text:0026C0B4                 jmp     short loc_26C0E2
.text:0026C0B6 ; ---------------------------------------------------------------------------
.text:0026C0B6
.text:0026C0B6 loc_26C0B6:                             ; CODE XREF: sub_26BF57+155j
.text:0026C0B6                 mov     eax, [edi]
.text:0026C0B8                 mov     [ebp-40h], eax
.text:0026C0BB                 add     edi, 4
.text:0026C0BE                 mov     [ebp-30h], edi
.text:0026C0C1
.text:0026C0C1 loc_26C0C1:                             ; CODE XREF: sub_26BF57+132j
.text:0026C0C1                 test    eax, eax
.text:0026C0C3                 jz      short loc_26C0CD
.text:0026C0C5                 lea     edi, [esi+380h]
.text:0026C0CB                 jmp     short loc_26C0E2
.text:0026C0CD ; ---------------------------------------------------------------------------
.text:0026C0CD
.text:0026C0CD loc_26C0CD:                             ; CODE XREF: sub_26BF57+16Cj
.text:0026C0CD                 mov     eax, [edi]
.text:0026C0CF                 mov     [ebp-40h], eax
.text:0026C0D2                 add     edi, 4
.text:0026C0D5                 mov     [ebp-30h], edi
.text:0026C0D8
.text:0026C0D8 loc_26C0D8:                             ; CODE XREF: sub_26BF57+135j
.text:0026C0D8                 test    eax, eax
.text:0026C0DA                 jz      short loc_26C156
.text:0026C0DC                 lea     edi, [esi+480h]
.text:0026C0E2
.text:0026C0E2 loc_26C0E2:                             ; CODE XREF: sub_26BF57+146j
.text:0026C0E2                                         ; sub_26BF57+15Dj ...
.text:0026C0E2                 mov     [ebp-2Ch], edi
.text:0026C0E5                 mov     ecx, eax
.text:0026C0E7                 call    sub_26D110
.text:0026C0EC                 movsx   eax, al
.text:0026C0EF                 lea     eax, [edi+eax*8]
.text:0026C0F2                 mov     [ebp-2Ch], eax
.text:0026C0F5                 mov     eax, [eax+4]
.text:0026C0F8                 sub     eax, 8
.text:0026C0FB                 mov     [ebp-34h], eax
.text:0026C0FE                 mov     ecx, [eax+8]
.text:0026C101                 mov     [ebp-130h], ecx
.text:0026C107                 mov     edx, [eax+0Ch]
.text:0026C10A                 mov     [ebp-0A8h], edx
.text:0026C110                 mov     [edx], ecx
.text:0026C112                 mov     [ecx+4], edx
.text:0026C115                 cmp     ecx, edx
.text:0026C117                 jnz     loc_26C1D1
.text:0026C11D                 movzx   ecx, word ptr [eax]
.text:0026C120                 mov     edx, ecx
.text:0026C122                 shr     edx, 3
.text:0026C125                 mov     [ebp-0F8h], edx
.text:0026C12B                 and     ecx, 7
.text:0026C12E                 xor     edi, edi
.text:0026C130                 inc     edi
.text:0026C131                 shl     edi, cl
.text:0026C133                 mov     [ebp-0B0h], edi
.text:0026C139                 lea     esi, [edx+esi+160h]
.text:0026C140                 xor     ecx, ecx
.text:0026C142                 mov     cl, [esi]
.text:0026C144                 xor     ecx, edi
.text:0026C146                 mov     [esi], cl
.text:0026C148                 jmp     loc_26C1D1
.text:0026C14D ; ---------------------------------------------------------------------------
.text:0026C14D
.text:0026C14D loc_26C14D:                             ; CODE XREF: sub_26BF57+5Fj
.text:0026C14D                 cmp     edi, [esi+1Ch]
.text:0026C150                 ja      loc_26C591
.text:0026C156
.text:0026C156 loc_26C156:                             ; CODE XREF: sub_26BF57+137j
.text:0026C156                                         ; sub_26BF57+183j
.text:0026C156                 lea     edx, [esi+180h]
.text:0026C15C                 mov     [ebp-2Ch], edx
.text:0026C15F                 mov     eax, [edx+4]
.text:0026C162                 mov     [ebp-44h], eax
.text:0026C165                 cmp     edx, eax
.text:0026C167                 jz      short loc_26C1A6
.text:0026C169                 add     eax, 0FFFFFFF8h
.text:0026C16C                 mov     [ebp-34h], eax
.text:0026C16F                 movzx   eax, word ptr [eax]
.text:0026C172                 cmp     eax, [ebp-28h]
.text:0026C175                 jb      short loc_26C1A6
.text:0026C177                 mov     ecx, [edx]
.text:0026C179
.text:0026C179 loc_26C179:                             ; CODE XREF: sub_26BF57+24Dj
.text:0026C179                 mov     [ebp-44h], ecx
.text:0026C17C                 cmp     edx, ecx
.text:0026C17E                 jz      short loc_26C1A6
.text:0026C180                 lea     eax, [ecx-8]
.text:0026C183                 mov     [ebp-34h], eax
.text:0026C186                 movzx   esi, word ptr [eax]
.text:0026C189                 cmp     esi, [ebp-28h]
.text:0026C18C                 jb      short loc_26C1A2
.text:0026C18E                 mov     ecx, [eax+8]
.text:0026C191                 mov     [ebp-94h], ecx
.text:0026C197                 mov     edx, [eax+0Ch]
.text:0026C19A                 mov     [ebp-0B8h], edx
.text:0026C1A0                 jmp     short loc_26C1CC
.text:0026C1A2 ; ---------------------------------------------------------------------------
.text:0026C1A2
.text:0026C1A2 loc_26C1A2:                             ; CODE XREF: sub_26BF57+235j
.text:0026C1A2                 mov     ecx, [ecx]
.text:0026C1A4                 jmp     short loc_26C179
.text:0026C1A6 ; ---------------------------------------------------------------------------
.text:0026C1A6
.text:0026C1A6 loc_26C1A6:                             ; CODE XREF: sub_26BF57+210j
.text:0026C1A6                                         ; sub_26BF57+21Ej ...
.text:0026C1A6                 push    dword ptr [ebp-20h]
.text:0026C1A9                 push    ebx
.text:0026C1AA                 call    sub_26B702
.text:0026C1AF                 mov     [ebp-34h], eax
.text:0026C1B2                 test    eax, eax
.text:0026C1B4                 jz      loc_26C585
.text:0026C1BA                 mov     ecx, [eax+8]
.text:0026C1BD                 mov     [ebp-100h], ecx
.text:0026C1C3                 mov     edx, [eax+0Ch]
.text:0026C1C6                 mov     [ebp-0C0h], edx
.text:0026C1CC
.text:0026C1CC loc_26C1CC:                             ; CODE XREF: sub_26BF57+249j
.text:0026C1CC                 mov     [edx], ecx
.text:0026C1CE                 mov     [ecx+4], edx
.text:0026C1D1
.text:0026C1D1 loc_26C1D1:                             ; CODE XREF: sub_26BF57+1C0j
.text:0026C1D1                                         ; sub_26BF57+1F1j
.text:0026C1D1                 mov     cl, [eax+5]
.text:0026C1D4                 mov     [ebp-19h], cl
.text:0026C1D7                 movzx   ecx, word ptr [eax]
.text:0026C1DA                 sub     [ebx+30h], ecx
.text:0026C1DD                 mov     [ebp-38h], eax
.text:0026C1E0                 mov     byte ptr [eax+5], 1
.text:0026C1E4                 movzx   edx, word ptr [eax]
.text:0026C1E7                 mov     ecx, [ebp-28h]
.text:0026C1EA                 sub     edx, ecx
.text:0026C1EC                 mov     [ebp-68h], edx
.text:0026C1EF                 mov     [eax], cx
.text:0026C1F2                 mov     ecx, [ebp-20h]
.text:0026C1F5                 sub     ecx, [ebp+10h]
.text:0026C1F8                 mov     [eax+6], cl
.text:0026C1FB                 mov     byte ptr [eax+7], 0
.text:0026C1FF                 test    edx, edx
.text:0026C201                 jz      loc_26C530
.text:0026C207                 cmp     edx, 1
.text:0026C20A                 jnz     short loc_26C225
.text:0026C20C                 xor     ecx, ecx
.text:0026C20E                 mov     cx, [eax]
.text:0026C211                 inc     ecx
.text:0026C212                 mov     [eax], cx
.text:0026C215                 xor     ecx, ecx
.text:0026C217                 mov     cl, [eax+6]
.text:0026C21A                 add     ecx, 10h
.text:0026C21D                 mov     [eax+6], cl
.text:0026C220                 jmp     loc_26C530
.text:0026C225 ; ---------------------------------------------------------------------------
.text:0026C225
.text:0026C225 loc_26C225:                             ; CODE XREF: sub_26BF57+2B3j
.text:0026C225                 mov     esi, [ebp-28h]
.text:0026C228                 shl     esi, 4
.text:0026C22B                 add     esi, eax
.text:0026C22D                 mov     [ebp-140h], esi
.text:0026C233                 mov     cl, [ebp-19h]
.text:0026C236                 mov     [esi+5], cl
.text:0026C239                 mov     di, [ebp-28h]
.text:0026C23D                 mov     [esi+2], di
.text:0026C241                 mov     al, [eax+4]
.text:0026C244                 mov     [esi+4], al
.text:0026C247                 mov     [esi], dx
.text:0026C24A                 test    cl, 10h
.text:0026C24D                 jz      loc_26C30E
.text:0026C253                 xor     eax, eax
.text:0026C255                 mov     al, [esi+5]
.text:0026C258                 and     eax, 10h
.text:0026C25B                 mov     [esi+5], al
.text:0026C25E                 cmp     dx, 80h
.text:0026C263                 jnb     short loc_26C2C3
.text:0026C265                 movzx   eax, dx
.text:0026C268                 lea     edi, [ebx+eax*8+180h]
.text:0026C26F                 mov     [ebp-0C8h], edi
.text:0026C275                 cmp     [edi], edi
.text:0026C277                 jnz     short loc_26C2AF
.text:0026C279                 movzx   ecx, word ptr [esi]
.text:0026C27C                 mov     eax, ecx
.text:0026C27E                 shr     eax, 3
.text:0026C281                 mov     [ebp-84h], eax
.text:0026C287                 and     ecx, 7
.text:0026C28A                 xor     eax, eax
.text:0026C28C                 inc     eax
.text:0026C28D                 shl     eax, cl
.text:0026C28F                 mov     [ebp-108h], eax
.text:0026C295                 mov     ecx, [ebp-84h]
.text:0026C29B                 lea     ecx, [ecx+ebx+160h]
.text:0026C2A2                 mov     [ebp-64h], ecx
.text:0026C2A5                 movzx   ecx, byte ptr [ecx]
.text:0026C2A8                 or      ecx, eax
.text:0026C2AA                 mov     eax, [ebp-64h]
.text:0026C2AD                 mov     [eax], cl
.text:0026C2AF
.text:0026C2AF loc_26C2AF:                             ; CODE XREF: sub_26BF57+320j
.text:0026C2AF                 mov     [ebp-0D0h], edi
.text:0026C2B5                 mov     ecx, [edi+4]
.text:0026C2B8                 mov     [ebp-128h], ecx
.text:0026C2BE                 jmp     loc_26C4C0
.text:0026C2C3 ; ---------------------------------------------------------------------------
.text:0026C2C3
.text:0026C2C3 loc_26C2C3:                             ; CODE XREF: sub_26BF57+30Cj
.text:0026C2C3                 lea     ecx, [ebx+180h]
.text:0026C2C9                 mov     [ebp-0D8h], ecx
.text:0026C2CF                 mov     eax, [ecx]
.text:0026C2D1
.text:0026C2D1 loc_26C2D1:                             ; CODE XREF: sub_26BF57+391j
.text:0026C2D1                 mov     [ebp-7Ch], eax
.text:0026C2D4                 cmp     ecx, eax
.text:0026C2D6                 jz      short loc_26C2EA
.text:0026C2D8                 lea     edi, [eax-8]
.text:0026C2DB                 mov     [ebp-110h], edi
.text:0026C2E1                 cmp     dx, [edi]
.text:0026C2E4                 jbe     short loc_26C2EA
.text:0026C2E6                 mov     eax, [eax]
.text:0026C2E8                 jmp     short loc_26C2D1
.text:0026C2EA ; ---------------------------------------------------------------------------
.text:0026C2EA
.text:0026C2EA loc_26C2EA:                             ; CODE XREF: sub_26BF57+37Fj
.text:0026C2EA                                         ; sub_26BF57+38Dj
.text:0026C2EA                 mov     [ebp-0E0h], eax
.text:0026C2F0                 mov     edi, [eax+4]
.text:0026C2F3                 mov     [ebp-138h], edi
.text:0026C2F9
.text:0026C2F9 loc_26C2F9:                             ; CODE XREF: sub_26BF57+47Aj
.text:0026C2F9                                         ; sub_26BF57+5B1j
.text:0026C2F9                 lea     ecx, [esi+8]
.text:0026C2FC                 mov     [ecx], eax
.text:0026C2FE                 mov     [esi+0Ch], edi
.text:0026C301                 mov     [edi], ecx
.text:0026C303                 mov     [eax+4], ecx
.text:0026C306
.text:0026C306 loc_26C306:                             ; CODE XREF: sub_26BF57+576j
.text:0026C306                 add     [ebx+30h], edx
.text:0026C309                 jmp     loc_26C515
.text:0026C30E ; ---------------------------------------------------------------------------
.text:0026C30E
.text:0026C30E loc_26C30E:                             ; CODE XREF: sub_26BF57+2F6j
.text:0026C30E                 mov     eax, edx
.text:0026C310                 shl     eax, 4
.text:0026C313                 add     eax, esi
.text:0026C315                 mov     [ebp-0E8h], eax
.text:0026C31B                 mov     cl, [eax+5]
.text:0026C31E                 test    cl, 1
.text:0026C321                 jz      loc_26C3D6
.text:0026C327                 mov     [eax+2], dx
.text:0026C32B                 xor     eax, eax
.text:0026C32D                 mov     al, [esi+5]
.text:0026C330                 and     eax, 10h
.text:0026C333                 mov     [esi+5], al
.text:0026C336                 cmp     dx, 80h
.text:0026C33B                 jnb     short loc_26C39B
.text:0026C33D                 movzx   eax, dx
.text:0026C340                 lea     edi, [ebx+eax*8+180h]
.text:0026C347                 mov     [ebp-118h], edi
.text:0026C34D                 cmp     [edi], edi
.text:0026C34F                 jnz     short loc_26C387
.text:0026C351                 movzx   ecx, word ptr [esi]
.text:0026C354                 mov     eax, ecx
.text:0026C356                 shr     eax, 3
.text:0026C359                 mov     [ebp-6Ch], eax
.text:0026C35C                 and     ecx, 7
.text:0026C35F                 xor     eax, eax
.text:0026C361                 inc     eax
.text:0026C362                 shl     eax, cl
.text:0026C364                 mov     [ebp-98h], eax
.text:0026C36A                 mov     ecx, [ebp-6Ch]
.text:0026C36D                 lea     ecx, [ecx+ebx+160h]
.text:0026C374                 mov     [ebp-8Ch], ecx
.text:0026C37A                 movzx   ecx, byte ptr [ecx]
.text:0026C37D                 or      ecx, eax
.text:0026C37F                 mov     eax, [ebp-8Ch]
.text:0026C385                 mov     [eax], cl
.text:0026C387
.text:0026C387 loc_26C387:                             ; CODE XREF: sub_26BF57+3F8j
.text:0026C387                 mov     [ebp-9Ch], edi
.text:0026C38D                 mov     ecx, [edi+4]
.text:0026C390                 mov     [ebp-0A4h], ecx
.text:0026C396                 jmp     loc_26C4C0
.text:0026C39B ; ---------------------------------------------------------------------------
.text:0026C39B
.text:0026C39B loc_26C39B:                             ; CODE XREF: sub_26BF57+3E4j
.text:0026C39B                 lea     ecx, [ebx+180h]
.text:0026C3A1                 mov     [ebp-0ACh], ecx
.text:0026C3A7                 mov     eax, [ecx]
.text:0026C3A9
.text:0026C3A9 loc_26C3A9:                             ; CODE XREF: sub_26BF57+469j
.text:0026C3A9                 mov     [ebp-74h], eax
.text:0026C3AC                 cmp     ecx, eax
.text:0026C3AE                 jz      short loc_26C3C2
.text:0026C3B0                 lea     edi, [eax-8]
.text:0026C3B3                 mov     [ebp-0B4h], edi
.text:0026C3B9                 cmp     dx, [edi]
.text:0026C3BC                 jbe     short loc_26C3C2
.text:0026C3BE                 mov     eax, [eax]
.text:0026C3C0                 jmp     short loc_26C3A9
.text:0026C3C2 ; ---------------------------------------------------------------------------
.text:0026C3C2
.text:0026C3C2 loc_26C3C2:                             ; CODE XREF: sub_26BF57+457j
.text:0026C3C2                                         ; sub_26BF57+465j
.text:0026C3C2                 mov     [ebp-0BCh], eax
.text:0026C3C8                 mov     edi, [eax+4]
.text:0026C3CB                 mov     [ebp-0C4h], edi
.text:0026C3D1                 jmp     loc_26C2F9
.text:0026C3D6 ; ---------------------------------------------------------------------------
.text:0026C3D6
.text:0026C3D6 loc_26C3D6:                             ; CODE XREF: sub_26BF57+3CAj
.text:0026C3D6                 mov     [esi+5], cl
.text:0026C3D9                 mov     ecx, [eax+8]
.text:0026C3DC                 mov     [ebp-0CCh], ecx
.text:0026C3E2                 mov     edi, [eax+0Ch]
.text:0026C3E5                 mov     [ebp-0D4h], edi
.text:0026C3EB                 mov     [edi], ecx
.text:0026C3ED                 mov     [ecx+4], edi
.text:0026C3F0                 cmp     ecx, edi
.text:0026C3F2                 jnz     short loc_26C42E
.text:0026C3F4                 mov     cx, [eax]
.text:0026C3F7                 cmp     cx, 80h
.text:0026C3FC                 jnb     short loc_26C42E
.text:0026C3FE                 movzx   ecx, cx
.text:0026C401                 mov     edi, ecx
.text:0026C403                 shr     edi, 3
.text:0026C406                 mov     [ebp-50h], edi
.text:0026C409                 and     ecx, 7
.text:0026C40C                 xor     edi, edi
.text:0026C40E                 inc     edi
.text:0026C40F                 shl     edi, cl
.text:0026C411                 mov     [ebp-0DCh], edi
.text:0026C417                 mov     ecx, [ebp-50h]
.text:0026C41A                 lea     ecx, [ecx+ebx+160h]
.text:0026C421                 mov     [ebp-60h], ecx
.text:0026C424                 movzx   ecx, byte ptr [ecx]
.text:0026C427                 xor     ecx, edi
.text:0026C429                 mov     edi, [ebp-60h]
.text:0026C42C                 mov     [edi], cl
.text:0026C42E
.text:0026C42E loc_26C42E:                             ; CODE XREF: sub_26BF57+49Bj
.text:0026C42E                                         ; sub_26BF57+4A5j
.text:0026C42E                 movzx   ecx, word ptr [eax]
.text:0026C431                 sub     [ebx+30h], ecx
.text:0026C434                 movzx   eax, word ptr [eax]
.text:0026C437                 add     edx, eax
.text:0026C439                 mov     [ebp-68h], edx
.text:0026C43C                 cmp     edx, 0FF00h
.text:0026C442                 ja      loc_26C50D
.text:0026C448                 mov     [esi], dx
.text:0026C44B                 test    byte ptr [esi+5], 10h
.text:0026C44F                 jnz     short loc_26C45B
.text:0026C451                 mov     eax, edx
.text:0026C453                 shl     eax, 4
.text:0026C456                 mov     [eax+esi+2], dx
.text:0026C45B
.text:0026C45B loc_26C45B:                             ; CODE XREF: sub_26BF57+4F8j
.text:0026C45B                 xor     eax, eax
.text:0026C45D                 mov     al, [esi+5]
.text:0026C460                 and     eax, 10h
.text:0026C463                 mov     [esi+5], al
.text:0026C466                 cmp     dx, 80h
.text:0026C46B                 jnb     short loc_26C4D2
.text:0026C46D                 movzx   eax, dx
.text:0026C470                 lea     edi, [ebx+eax*8+180h]
.text:0026C477                 mov     [ebp-0E4h], edi
.text:0026C47D                 cmp     [edi], edi
.text:0026C47F                 jnz     short loc_26C4B1
.text:0026C481                 movzx   ecx, word ptr [esi]
.text:0026C484                 mov     eax, ecx
.text:0026C486                 shr     eax, 3
.text:0026C489                 mov     [ebp-70h], eax
.text:0026C48C                 and     ecx, 7
.text:0026C48F                 xor     eax, eax
.text:0026C491                 inc     eax
.text:0026C492                 shl     eax, cl
.text:0026C494                 mov     [ebp-0ECh], eax
.text:0026C49A                 mov     ecx, [ebp-70h]
.text:0026C49D                 lea     ecx, [ecx+ebx+160h]
.text:0026C4A4                 mov     [ebp-78h], ecx
.text:0026C4A7                 movzx   ecx, byte ptr [ecx]
.text:0026C4AA                 or      ecx, eax
.text:0026C4AC                 mov     eax, [ebp-78h]
.text:0026C4AF                 mov     [eax], cl
.text:0026C4B1
.text:0026C4B1 loc_26C4B1:                             ; CODE XREF: sub_26BF57+528j
.text:0026C4B1                 mov     [ebp-0F4h], edi
.text:0026C4B7                 mov     ecx, [edi+4]
.text:0026C4BA                 mov     [ebp-0FCh], ecx
.text:0026C4C0
.text:0026C4C0 loc_26C4C0:                             ; CODE XREF: sub_26BF57+367j
.text:0026C4C0                                         ; sub_26BF57+43Fj
.text:0026C4C0                 lea     eax, [esi+8]
.text:0026C4C3                 mov     [eax], edi
.text:0026C4C5                 mov     [esi+0Ch], ecx
.text:0026C4C8                 mov     [ecx], eax
.text:0026C4CA                 mov     [edi+4], eax
.text:0026C4CD                 jmp     loc_26C306
.text:0026C4D2 ; ---------------------------------------------------------------------------
.text:0026C4D2
.text:0026C4D2 loc_26C4D2:                             ; CODE XREF: sub_26BF57+514j
.text:0026C4D2                 lea     ecx, [ebx+180h]
.text:0026C4D8                 mov     [ebp-104h], ecx
.text:0026C4DE                 mov     eax, [ecx]
.text:0026C4E0
.text:0026C4E0 loc_26C4E0:                             ; CODE XREF: sub_26BF57+5A0j
.text:0026C4E0                 mov     [ebp-80h], eax
.text:0026C4E3                 cmp     ecx, eax
.text:0026C4E5                 jz      short loc_26C4F9
.text:0026C4E7                 lea     edi, [eax-8]
.text:0026C4EA                 mov     [ebp-10Ch], edi
.text:0026C4F0                 cmp     dx, [edi]
.text:0026C4F3                 jbe     short loc_26C4F9
.text:0026C4F5                 mov     eax, [eax]
.text:0026C4F7                 jmp     short loc_26C4E0
.text:0026C4F9 ; ---------------------------------------------------------------------------
.text:0026C4F9
.text:0026C4F9 loc_26C4F9:                             ; CODE XREF: sub_26BF57+58Ej
.text:0026C4F9                                         ; sub_26BF57+59Cj
.text:0026C4F9                 mov     [ebp-114h], eax
.text:0026C4FF                 mov     edi, [eax+4]
.text:0026C502                 mov     [ebp-11Ch], edi
.text:0026C508                 jmp     loc_26C2F9
.text:0026C50D ; ---------------------------------------------------------------------------
.text:0026C50D
.text:0026C50D loc_26C50D:                             ; CODE XREF: sub_26BF57+4EBj
.text:0026C50D                 push    edx
.text:0026C50E                 push    esi
.text:0026C50F                 push    ebx
.text:0026C510                 call    sub_26B012
.text:0026C515
.text:0026C515 loc_26C515:                             ; CODE XREF: sub_26BF57+3B2j
.text:0026C515                 mov     byte ptr [ebp-19h], 0
.text:0026C519                 test    byte ptr [esi+5], 10h
.text:0026C51D                 jz      short loc_26C530
.text:0026C51F                 movzx   eax, byte ptr [esi+4]
.text:0026C523                 mov     eax, [ebx+eax*4+60h]
.text:0026C527                 mov     [ebp-124h], eax
.text:0026C52D                 mov     [eax+40h], esi
.text:0026C530
.text:0026C530 loc_26C530:                             ; CODE XREF: sub_26BF57+2AAj
.text:0026C530                                         ; sub_26BF57+2C9j ...
.text:0026C530                 test    byte ptr [ebp-19h], 10h
.text:0026C534                 jz      short loc_26C542
.text:0026C536                 mov     eax, [ebp-38h]
.text:0026C539                 mov     cl, [eax+5]
.text:0026C53C                 or      cl, 10h
.text:0026C53F                 mov     [eax+5], cl
.text:0026C542
.text:0026C542 loc_26C542:                             ; CODE XREF: sub_26BF57+F6j
.text:0026C542                                         ; sub_26BF57+5DDj
.text:0026C542                 mov     esi, [ebp-38h]
.text:0026C545                 add     esi, 10h
.text:0026C548                 mov     [ebp-3Ch], esi
.text:0026C54B                 cmp     byte ptr [ebp-1Ah], 0
.text:0026C54F                 jz      short loc_26C561
.text:0026C551                 push    dword ptr [ebx+580h]
.text:0026C557                 call    ds:dword_485D88
.text:0026C55D                 mov     byte ptr [ebp-1Ah], 0
.text:0026C561
.text:0026C561 loc_26C561:                             ; CODE XREF: sub_26BF57+5F8j
.text:0026C561                 test    byte ptr [ebp+0Ch], 8
.text:0026C565                 jz      loc_26C679
.text:0026C56B                 mov     ecx, [ebp+10h]
.text:0026C56E                 xor     eax, eax
.text:0026C570                 mov     edi, esi
.text:0026C572                 mov     edx, ecx
.text:0026C574                 shr     ecx, 2
.text:0026C577                 rep stosd
.text:0026C579                 mov     ecx, edx
.text:0026C57B                 and     ecx, 3
.text:0026C57E                 rep stosb
.text:0026C580                 jmp     loc_26C679
.text:0026C585 ; ---------------------------------------------------------------------------
.text:0026C585
.text:0026C585 loc_26C585:                             ; CODE XREF: sub_26BF57+25Dj
.text:0026C585                 mov     dword ptr [ebp-48h], 0C0000017h
.text:0026C58C                 jmp     loc_26C636
.text:0026C591 ; ---------------------------------------------------------------------------
.text:0026C591
.text:0026C591 loc_26C591:                             ; CODE XREF: sub_26BF57+1F9j
.text:0026C591                 test    byte ptr [esi+14h], 2
.text:0026C595                 jz      loc_26C62F
.text:0026C59B                 and     dword ptr [ebp-24h], 0
.text:0026C59F                 add     dword ptr [ebp-20h], 20h
.text:0026C5A3                 push    4
.text:0026C5A5                 mov     eax, [ebp+0Ch]
.text:0026C5A8                 shl     eax, 14h
.text:0026C5AB                 not     eax
.text:0026C5AD                 and     eax, 800000h
.text:0026C5B2                 or      eax, 1000h
.text:0026C5B7                 push    eax
.text:0026C5B8                 lea     eax, [ebp-20h]
.text:0026C5BB                 push    eax
.text:0026C5BC                 push    0
.text:0026C5BE                 lea     eax, [ebp-24h]
.text:0026C5C1                 push    eax
.text:0026C5C2                 call    ds:dword_485E70
.text:0026C5C8                 mov     [ebp-48h], eax
.text:0026C5CB                 test    eax, eax
.text:0026C5CD                 jl      short loc_26C636
.text:0026C5CF                 push    0Ch
.text:0026C5D1                 pop     ecx
.text:0026C5D2                 xor     eax, eax
.text:0026C5D4                 mov     edi, [ebp-24h]
.text:0026C5D7                 rep stosd
.text:0026C5D9                 mov     eax, [ebp-20h]
.text:0026C5DC                 sub     eax, [ebp+10h]
.text:0026C5DF                 mov     ecx, [ebp-24h]
.text:0026C5E2                 mov     [ecx+20h], ax
.text:0026C5E6                 mov     eax, [ebp-24h]
.text:0026C5E9                 mov     byte ptr [eax+25h], 0Bh
.text:0026C5ED                 mov     eax, [ebp-20h]
.text:0026C5F0                 mov     ecx, [ebp-24h]
.text:0026C5F3                 mov     [ecx+18h], eax
.text:0026C5F6                 mov     eax, [ebp-24h]
.text:0026C5F9                 mov     ecx, [ebp-20h]
.text:0026C5FC                 mov     [eax+1Ch], ecx
.text:0026C5FF                 add     esi, 58h
.text:0026C602                 mov     [ebp-12Ch], esi
.text:0026C608                 mov     eax, [esi+4]
.text:0026C60B                 mov     [ebp-134h], eax
.text:0026C611                 mov     ecx, [ebp-24h]
.text:0026C614                 mov     [ecx], esi
.text:0026C616                 mov     ecx, [ebp-24h]
.text:0026C619                 mov     [ecx+4], eax
.text:0026C61C                 mov     ecx, [ebp-24h]
.text:0026C61F                 mov     [eax], ecx
.text:0026C621                 mov     eax, [ebp-24h]
.text:0026C624                 mov     [esi+4], eax
.text:0026C627                 mov     esi, [ebp-24h]
.text:0026C62A                 add     esi, 30h
.text:0026C62D                 jmp     short loc_26C676
.text:0026C62F ; ---------------------------------------------------------------------------
.text:0026C62F
.text:0026C62F loc_26C62F:                             ; CODE XREF: sub_26BF57+63Ej
.text:0026C62F                 mov     dword ptr [ebp-48h], 0C0000023h
.text:0026C636
.text:0026C636 loc_26C636:                             ; CODE XREF: sub_26BF57+635j
.text:0026C636                                         ; sub_26BF57+676j
.text:0026C636                 test    byte ptr [ebp+0Ch], 4
.text:0026C63A                 jz      short loc_26C674
.text:0026C63C                 mov     dword ptr [ebp-190h], 0C0000017h
.text:0026C646                 and     dword ptr [ebp-188h], 0
.text:0026C64D                 mov     dword ptr [ebp-180h], 1
.text:0026C657                 and     dword ptr [ebp-18Ch], 0
.text:0026C65E                 mov     eax, [ebp-20h]
.text:0026C661                 mov     [ebp-17Ch], eax
.text:0026C667                 lea     eax, [ebp-190h]
.text:0026C66D                 push    eax
.text:0026C66E                 call    ds:dword_485E40
.text:0026C674
.text:0026C674 loc_26C674:                             ; CODE XREF: sub_26BF57+6E3j
.text:0026C674                 xor     esi, esi
.text:0026C676
.text:0026C676 loc_26C676:                             ; CODE XREF: sub_26BF57+6D6j
.text:0026C676                 mov     [ebp-3Ch], esi
.text:0026C679
.text:0026C679 loc_26C679:                             ; CODE XREF: sub_26BF57+60Ej
.text:0026C679                                         ; sub_26BF57+629j
.text:0026C679                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:0026C67D                 call    sub_26C6BF
.text:0026C682                 test    esi, esi
.text:0026C684                 jz      short loc_26C6AC
.text:0026C686                 mov     [ebp-5Ch], esi
.text:0026C689                 mov     eax, [ebp+10h]
.text:0026C68C                 mov     [ebp-58h], eax
.text:0026C68F                 and     dword ptr [ebp-54h], 0
.text:0026C693                 mov     eax, large fs:20h
.text:0026C699                 mov     eax, [eax+250h]
.text:0026C69F                 test    eax, eax
.text:0026C6A1                 jz      short loc_26C6AC
.text:0026C6A3                 lea     ecx, [ebp-5Ch]
.text:0026C6A6                 push    ecx
.text:0026C6A7                 push    0Ah
.text:0026C6A9                 call    dword ptr [eax+14h]
.text:0026C6AC
.text:0026C6AC loc_26C6AC:                             ; CODE XREF: sub_26BF57+72Dj
.text:0026C6AC                                         ; sub_26BF57+74Aj
.text:0026C6AC                 mov     eax, esi
.text:0026C6AE                 call    __SEH_epilog
.text:0026C6B3                 retn    0Ch
.text:0026C6B3 sub_26BF57      endp
.text:0026C6B3
.text:0026C6B6 ; ---------------------------------------------------------------------------
.text:0026C6B6
.text:0026C6B6 loc_26C6B6:                             ; DATA XREF: .rdata:004CE968o
.text:0026C6B6                 mov     ebx, [ebp-88h]
.text:0026C6BC                 mov     esi, [ebp-3Ch]
.text:0026C6BF
.text:0026C6BF ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026C6BF
.text:0026C6BF
.text:0026C6BF sub_26C6BF      proc near               ; CODE XREF: sub_26BF57+726p
.text:0026C6BF                 cmp     byte ptr [ebp-1Ah], 0
.text:0026C6C3                 jz      short locret_26C6D1
.text:0026C6C5                 push    dword ptr [ebx+580h]
.text:0026C6CB                 call    ds:dword_485D88
.text:0026C6D1
.text:0026C6D1 locret_26C6D1:                          ; CODE XREF: sub_26C6BF+4j
.text:0026C6D1                 retn
.text:0026C6D1 sub_26C6BF      endp
.text:0026C6D1
.text:0026C6D2
.text:0026C6D2 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026C6D2
.text:0026C6D2
.text:0026C6D2 sub_26C6D2      proc near               ; CODE XREF: HeapFree(x,x,x)+Cp
.text:0026C6D2                                         ; LocalFree(x)+Cp ...
.text:0026C6D2                 push    5Ch
.text:0026C6D4                 push    offset dword_4CE970
.text:0026C6D9                 call    __SEH_prolog
.text:0026C6DE                 mov     esi, [ebp+8]
.text:0026C6E1                 mov     ebx, esi
.text:0026C6E3                 mov     [ebp-24h], ebx
.text:0026C6E6                 mov     byte ptr [ebp-19h], 0
.text:0026C6EA                 mov     byte ptr [ebp-1Ah], 1
.text:0026C6EE                 mov     edi, [ebp+10h]
.text:0026C6F1                 test    edi, edi
.text:0026C6F3                 jnz     short loc_26C6FC
.text:0026C6F5                 mov     al, 1
.text:0026C6F7                 jmp     loc_26C8A8
.text:0026C6FC ; ---------------------------------------------------------------------------
.text:0026C6FC
.text:0026C6FC loc_26C6FC:                             ; CODE XREF: sub_26C6D2+21j
.text:0026C6FC                 mov     [ebp-6Ch], edi
.text:0026C6FF                 and     dword ptr [ebp-68h], 0
.text:0026C703                 and     dword ptr [ebp-64h], 0
.text:0026C707                 mov     eax, large fs:20h
.text:0026C70D                 mov     eax, [eax+250h]
.text:0026C713                 test    eax, eax
.text:0026C715                 jz      short loc_26C720
.text:0026C717                 lea     ecx, [ebp-6Ch]
.text:0026C71A                 push    ecx
.text:0026C71B                 push    0Bh
.text:0026C71D                 call    dword ptr [eax+14h]
.text:0026C720
.text:0026C720 loc_26C720:                             ; CODE XREF: sub_26C6D2+43j
.text:0026C720                 mov     eax, [ebp+0Ch]
.text:0026C723                 or      eax, [esi+18h]
.text:0026C726                 add     edi, 0FFFFFFF0h
.text:0026C729                 and     dword ptr [ebp-4], 0
.text:0026C72D                 test    al, 1
.text:0026C72F                 jnz     short loc_26C741
.text:0026C731                 push    dword ptr [esi+580h]
.text:0026C737                 call    ds:dword_485D84
.text:0026C73D                 mov     byte ptr [ebp-19h], 1
.text:0026C741
.text:0026C741 loc_26C741:                             ; CODE XREF: sub_26C6D2+5Dj
.text:0026C741                 test    byte ptr [edi+5], 8
.text:0026C745                 jnz     loc_26C84E
.text:0026C74B                 movzx   eax, word ptr [edi]
.text:0026C74E                 mov     [ebp-20h], eax
.text:0026C751                 push    0
.text:0026C753                 lea     eax, [ebp-20h]
.text:0026C756                 push    eax
.text:0026C757                 push    edi
.text:0026C758                 push    esi
.text:0026C759                 call    _RtlpCoalesceFreeBlocks@16 ; RtlpCoalesceFreeBlocks(x,x,x,x)
.text:0026C75E                 mov     [ebp-30h], eax
.text:0026C761                 mov     ecx, [ebp-20h]
.text:0026C764                 cmp     ecx, 80h
.text:0026C76A                 jnb     short loc_26C7D2
.text:0026C76C                 xor     ecx, ecx
.text:0026C76E                 mov     cl, [eax+5]
.text:0026C771                 and     ecx, 10h
.text:0026C774                 mov     [eax+5], cl
.text:0026C777                 movzx   ecx, word ptr [ebp-20h]
.text:0026C77B                 lea     edx, [esi+ecx*8+180h]
.text:0026C782                 mov     [ebp-34h], edx
.text:0026C785                 cmp     [edx], edx
.text:0026C787                 jnz     short loc_26C7B1
.text:0026C789                 movzx   ecx, word ptr [eax]
.text:0026C78C                 mov     edi, ecx
.text:0026C78E                 shr     edi, 3
.text:0026C791                 mov     [ebp-38h], edi
.text:0026C794                 and     ecx, 7
.text:0026C797                 xor     ebx, ebx
.text:0026C799                 inc     ebx
.text:0026C79A                 shl     ebx, cl
.text:0026C79C                 mov     [ebp-3Ch], ebx
.text:0026C79F                 lea     edi, [edi+esi+160h]
.text:0026C7A6                 xor     ecx, ecx
.text:0026C7A8                 mov     cl, [edi]
.text:0026C7AA                 or      ecx, ebx
.text:0026C7AC                 mov     [edi], cl
.text:0026C7AE                 mov     ebx, [ebp-24h]
.text:0026C7B1
.text:0026C7B1 loc_26C7B1:                             ; CODE XREF: sub_26C6D2+B5j
.text:0026C7B1                 mov     [ebp-40h], edx
.text:0026C7B4                 mov     edi, [edx+4]
.text:0026C7B7                 mov     [ebp-44h], edi
.text:0026C7BA                 lea     ecx, [eax+8]
.text:0026C7BD                 mov     [ecx], edx
.text:0026C7BF                 mov     [eax+0Ch], edi
.text:0026C7C2                 mov     [edi], ecx
.text:0026C7C4                 mov     [edx+4], ecx
.text:0026C7C7                 mov     eax, [ebp-20h]
.text:0026C7CA                 add     [esi+30h], eax
.text:0026C7CD                 jmp     loc_26C89C
.text:0026C7D2 ; ---------------------------------------------------------------------------
.text:0026C7D2
.text:0026C7D2 loc_26C7D2:                             ; CODE XREF: sub_26C6D2+98j
.text:0026C7D2                 cmp     ecx, [esi+28h]
.text:0026C7D5                 jb      short loc_26C7EE
.text:0026C7D7                 mov     edx, [esi+30h]
.text:0026C7DA                 add     edx, ecx
.text:0026C7DC                 cmp     edx, [esi+2Ch]
.text:0026C7DF                 jb      short loc_26C7EE
.text:0026C7E1                 push    ecx
.text:0026C7E2                 push    eax
.text:0026C7E3                 push    esi
.text:0026C7E4                 call    _RtlpDeCommitFreeBlock@12 ; RtlpDeCommitFreeBlock(x,x,x)
.text:0026C7E9                 jmp     loc_26C89C
.text:0026C7EE ; ---------------------------------------------------------------------------
.text:0026C7EE
.text:0026C7EE loc_26C7EE:                             ; CODE XREF: sub_26C6D2+103j
.text:0026C7EE                                         ; sub_26C6D2+10Dj
.text:0026C7EE                 cmp     ecx, 0FF00h
.text:0026C7F4                 ja      short loc_26C844
.text:0026C7F6                 xor     ecx, ecx
.text:0026C7F8                 mov     cl, [eax+5]
.text:0026C7FB                 and     ecx, 10h
.text:0026C7FE                 mov     [eax+5], cl
.text:0026C801                 add     esi, 180h
.text:0026C807                 mov     [ebp-48h], esi
.text:0026C80A                 mov     ecx, [esi]
.text:0026C80C
.text:0026C80C loc_26C80C:                             ; CODE XREF: sub_26C6D2+152j
.text:0026C80C                 mov     [ebp-28h], ecx
.text:0026C80F                 cmp     esi, ecx
.text:0026C811                 jz      short loc_26C826
.text:0026C813                 lea     edx, [ecx-8]
.text:0026C816                 mov     [ebp-4Ch], edx
.text:0026C819                 mov     di, [ebp-20h]
.text:0026C81D                 cmp     di, [edx]
.text:0026C820                 jbe     short loc_26C826
.text:0026C822                 mov     ecx, [ecx]
.text:0026C824                 jmp     short loc_26C80C
.text:0026C826 ; ---------------------------------------------------------------------------
.text:0026C826
.text:0026C826 loc_26C826:                             ; CODE XREF: sub_26C6D2+13Fj
.text:0026C826                                         ; sub_26C6D2+14Ej
.text:0026C826                 mov     [ebp-50h], ecx
.text:0026C829                 mov     esi, [ecx+4]
.text:0026C82C                 mov     [ebp-54h], esi
.text:0026C82F                 lea     edx, [eax+8]
.text:0026C832                 mov     [edx], ecx
.text:0026C834                 mov     [eax+0Ch], esi
.text:0026C837                 mov     [esi], edx
.text:0026C839                 mov     [ecx+4], edx
.text:0026C83C                 mov     eax, [ebp-20h]
.text:0026C83F                 add     [ebx+30h], eax
.text:0026C842                 jmp     short loc_26C89C
.text:0026C844 ; ---------------------------------------------------------------------------
.text:0026C844
.text:0026C844 loc_26C844:                             ; CODE XREF: sub_26C6D2+122j
.text:0026C844                 push    ecx
.text:0026C845                 push    eax
.text:0026C846                 push    esi
.text:0026C847                 call    sub_26B012
.text:0026C84C                 jmp     short loc_26C89C
.text:0026C84E ; ---------------------------------------------------------------------------
.text:0026C84E
.text:0026C84E loc_26C84E:                             ; CODE XREF: sub_26C6D2+73j
.text:0026C84E                 lea     eax, [edi-20h]
.text:0026C851                 mov     [ebp-2Ch], eax
.text:0026C854                 mov     ecx, [eax]
.text:0026C856                 mov     [ebp-58h], ecx
.text:0026C859                 mov     eax, [eax+4]
.text:0026C85C                 mov     [ebp-5Ch], eax
.text:0026C85F                 mov     [eax], ecx
.text:0026C861                 mov     [ecx+4], eax
.text:0026C864                 cmp     byte ptr [ebp-19h], 0
.text:0026C868                 jz      short loc_26C87A
.text:0026C86A                 push    dword ptr [esi+580h]
.text:0026C870                 call    ds:dword_485D88
.text:0026C876                 mov     byte ptr [ebp-19h], 0
.text:0026C87A
.text:0026C87A loc_26C87A:                             ; CODE XREF: sub_26C6D2+196j
.text:0026C87A                 and     dword ptr [ebp-20h], 0
.text:0026C87E                 push    8000h
.text:0026C883                 lea     eax, [ebp-20h]
.text:0026C886                 push    eax
.text:0026C887                 lea     eax, [ebp-2Ch]
.text:0026C88A                 push    eax
.text:0026C88B                 call    ds:dword_485E74
.text:0026C891                 mov     [ebp-60h], eax
.text:0026C894                 test    eax, eax
.text:0026C896                 jge     short loc_26C89C
.text:0026C898                 mov     byte ptr [ebp-1Ah], 0
.text:0026C89C
.text:0026C89C loc_26C89C:                             ; CODE XREF: sub_26C6D2+FBj
.text:0026C89C                                         ; sub_26C6D2+117j ...
.text:0026C89C                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:0026C8A0                 call    sub_26C8B3
.text:0026C8A5                 mov     al, [ebp-1Ah]
.text:0026C8A8
.text:0026C8A8 loc_26C8A8:                             ; CODE XREF: sub_26C6D2+25j
.text:0026C8A8                 call    __SEH_epilog
.text:0026C8AD                 retn    0Ch
.text:0026C8AD sub_26C6D2      endp
.text:0026C8AD
.text:0026C8B0 ; ---------------------------------------------------------------------------
.text:0026C8B0
.text:0026C8B0 loc_26C8B0:                             ; DATA XREF: .rdata:004CE978o
.text:0026C8B0                 mov     ebx, [ebp-24h]
.text:0026C8B3
.text:0026C8B3 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026C8B3
.text:0026C8B3
.text:0026C8B3 sub_26C8B3      proc near               ; CODE XREF: sub_26C6D2+1CEp
.text:0026C8B3                 cmp     byte ptr [ebp-19h], 0
.text:0026C8B7                 jz      short locret_26C8C5
.text:0026C8B9                 push    dword ptr [ebx+580h]
.text:0026C8BF                 call    ds:dword_485D88
.text:0026C8C5
.text:0026C8C5 locret_26C8C5:                          ; CODE XREF: sub_26C8B3+4j
.text:0026C8C5                 retn
.text:0026C8C5 sub_26C8B3      endp
.text:0026C8C5
.text:0026C8C6
.text:0026C8C6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026C8C6
.text:0026C8C6
.text:0026C8C6 sub_26C8C6      proc near               ; CODE XREF: _realloc+7Ep
.text:0026C8C6                                         ; _realloc+C9p
.text:0026C8C6                 push    13Ch
.text:0026C8CB                 push    offset dword_4CE980
.text:0026C8D0                 call    __SEH_prolog
.text:0026C8D5                 mov     eax, [ebp+8]
.text:0026C8D8                 mov     [ebp-2Ch], eax
.text:0026C8DB                 mov     byte ptr [ebp-1Dh], 0
.text:0026C8DF                 mov     esi, [ebp+10h]
.text:0026C8E2                 test    esi, esi
.text:0026C8E4                 jz      short loc_26C8FA
.text:0026C8E6                 mov     [ebp-74h], esi
.text:0026C8E9                 mov     ecx, [eax+18h]
.text:0026C8EC                 or      [ebp+0Ch], ecx
.text:0026C8EF                 mov     edx, [ebp+14h]
.text:0026C8F2                 cmp     edx, 7FFFFFFFh
.text:0026C8F8                 jbe     short loc_26C901
.text:0026C8FA
.text:0026C8FA loc_26C8FA:                             ; CODE XREF: sub_26C8C6+1Ej
.text:0026C8FA                 xor     eax, eax
.text:0026C8FC                 jmp     loc_26CFD6
.text:0026C901 ; ---------------------------------------------------------------------------
.text:0026C901
.text:0026C901 loc_26C901:                             ; CODE XREF: sub_26C8C6+32j
.text:0026C901                 test    edx, edx
.text:0026C903                 jnz     short loc_26C906
.text:0026C905                 inc     edx
.text:0026C906
.text:0026C906 loc_26C906:                             ; CODE XREF: sub_26C8C6+3Dj
.text:0026C906                 mov     ecx, [eax+50h]
.text:0026C909                 add     ecx, edx
.text:0026C90B                 and     ecx, [eax+54h]
.text:0026C90E                 mov     [ebp-1Ch], ecx
.text:0026C911                 test    dword ptr [ebp+0Ch], 3C000100h
.text:0026C918                 jnz     short loc_26C929
.text:0026C91A                 cmp     dword ptr [eax+17Ch], 0
.text:0026C921                 jnz     short loc_26C929
.text:0026C923                 test    byte ptr [esi-0Bh], 2
.text:0026C927                 jz      short loc_26C92F
.text:0026C929
.text:0026C929 loc_26C929:                             ; CODE XREF: sub_26C8C6+52j
.text:0026C929                                         ; sub_26C8C6+5Bj
.text:0026C929                 add     ecx, 10h
.text:0026C92C                 mov     [ebp-1Ch], ecx
.text:0026C92F
.text:0026C92F loc_26C92F:                             ; CODE XREF: sub_26C8C6+61j
.text:0026C92F                 and     dword ptr [ebp-4], 0
.text:0026C933                 test    byte ptr [ebp+0Ch], 1
.text:0026C937                 jnz     short loc_26C94D
.text:0026C939                 push    dword ptr [eax+580h]
.text:0026C93F                 call    ds:dword_485D84
.text:0026C945                 mov     byte ptr [ebp-1Dh], 1
.text:0026C949                 xor     dword ptr [ebp+0Ch], 1
.text:0026C94D
.text:0026C94D loc_26C94D:                             ; CODE XREF: sub_26C8C6+71j
.text:0026C94D                 mov     dword ptr [ebp-4], 1
.text:0026C954                 lea     ebx, [esi-10h]
.text:0026C957                 mov     [ebp-64h], ebx
.text:0026C95A                 mov     al, [ebx+5]
.text:0026C95D                 test    al, 1
.text:0026C95F                 jz      loc_26CF5D
.text:0026C965                 mov     cl, al
.text:0026C967                 and     cl, 8
.text:0026C96A                 jz      short loc_26C9A1
.text:0026C96C                 lea     edx, [ebx-20h]
.text:0026C96F                 mov     [ebp-0F0h], edx
.text:0026C975                 movzx   eax, word ptr [ebx]
.text:0026C978                 mov     esi, [edx+18h]
.text:0026C97B                 sub     esi, eax
.text:0026C97D                 mov     [ebp-30h], esi
.text:0026C980                 lea     edx, [eax+esi]
.text:0026C983                 shr     edx, 4
.text:0026C986                 mov     [ebp-50h], edx
.text:0026C989                 add     dword ptr [ebp-1Ch], 20h
.text:0026C98D                 mov     edi, [ebp-1Ch]
.text:0026C990                 add     edi, 0FFFh
.text:0026C996                 and     edi, 0FFFFF000h
.text:0026C99C                 mov     [ebp-1Ch], edi
.text:0026C99F                 jmp     short loc_26C9B7
.text:0026C9A1 ; ---------------------------------------------------------------------------
.text:0026C9A1
.text:0026C9A1 loc_26C9A1:                             ; CODE XREF: sub_26C8C6+A4j
.text:0026C9A1                 movzx   eax, word ptr [ebx]
.text:0026C9A4                 mov     edx, eax
.text:0026C9A6                 mov     [ebp-50h], edx
.text:0026C9A9                 movzx   edi, byte ptr [ebx+6]
.text:0026C9AD                 mov     esi, edx
.text:0026C9AF                 shl     esi, 4
.text:0026C9B2                 sub     esi, edi
.text:0026C9B4                 mov     [ebp-30h], esi
.text:0026C9B7
.text:0026C9B7 loc_26C9B7:                             ; CODE XREF: sub_26C8C6+D9j
.text:0026C9B7                 mov     edi, [ebp-1Ch]
.text:0026C9BA                 shr     edi, 4
.text:0026C9BD                 mov     [ebp-38h], edi
.text:0026C9C0                 cmp     edi, edx
.text:0026C9C2                 ja      loc_26CDAA
.text:0026C9C8                 inc     edi
.text:0026C9C9                 cmp     edi, edx
.text:0026C9CB                 jnz     short loc_26C9D4
.text:0026C9CD                 mov     [ebp-38h], edi
.text:0026C9D0                 add     dword ptr [ebp-1Ch], 10h
.text:0026C9D4
.text:0026C9D4 loc_26C9D4:                             ; CODE XREF: sub_26C8C6+105j
.text:0026C9D4                 test    cl, cl
.text:0026C9D6                 jz      short loc_26C9E3
.text:0026C9D8                 mov     eax, [ebp-1Ch]
.text:0026C9DB                 sub     eax, [ebp+14h]
.text:0026C9DE                 mov     [ebx], ax
.text:0026C9E1                 jmp     short loc_26CA0F
.text:0026C9E3 ; ---------------------------------------------------------------------------
.text:0026C9E3
.text:0026C9E3 loc_26C9E3:                             ; CODE XREF: sub_26C8C6+110j
.text:0026C9E3                 test    byte ptr [ebx+5], 2
.text:0026C9E7                 jz      short loc_26CA06
.text:0026C9E9                 shl     eax, 4
.text:0026C9EC                 lea     eax, [eax+ebx-10h]
.text:0026C9F0                 mov     [ebp-4Ch], eax
.text:0026C9F3                 mov     ecx, [ebp-38h]
.text:0026C9F6                 shl     ecx, 4
.text:0026C9F9                 lea     edi, [ecx+ebx-10h]
.text:0026C9FD                 mov     [ebp-6Ch], edi
.text:0026CA00                 mov     esi, eax
.text:0026CA02                 movsd
.text:0026CA03                 movsd
.text:0026CA04                 movsd
.text:0026CA05                 movsd
.text:0026CA06
.text:0026CA06 loc_26CA06:                             ; CODE XREF: sub_26C8C6+121j
.text:0026CA06                 mov     eax, [ebp-1Ch]
.text:0026CA09                 sub     eax, [ebp+14h]
.text:0026CA0C                 mov     [ebx+6], al
.text:0026CA0F
.text:0026CA0F loc_26CA0F:                             ; CODE XREF: sub_26C8C6+11Bj
.text:0026CA0F                 mov     esi, [ebp-30h]
.text:0026CA12                 mov     ecx, [ebp+14h]
.text:0026CA15                 cmp     ecx, esi
.text:0026CA17                 jbe     short loc_26CA36
.text:0026CA19                 test    byte ptr [ebp+0Ch], 8
.text:0026CA1D                 jz      short loc_26CA36
.text:0026CA1F                 sub     ecx, esi
.text:0026CA21                 xor     eax, eax
.text:0026CA23                 mov     edi, [ebp+10h]
.text:0026CA26                 add     edi, esi
.text:0026CA28                 mov     esi, ecx
.text:0026CA2A                 shr     ecx, 2
.text:0026CA2D                 rep stosd
.text:0026CA2F                 mov     ecx, esi
.text:0026CA31                 and     ecx, 3
.text:0026CA34                 rep stosb
.text:0026CA36
.text:0026CA36 loc_26CA36:                             ; CODE XREF: sub_26C8C6+151j
.text:0026CA36                                         ; sub_26C8C6+157j
.text:0026CA36                 mov     ecx, [ebp-38h]
.text:0026CA39                 cmp     ecx, edx
.text:0026CA3B                 jz      loc_26CEFC
.text:0026CA41                 xor     eax, eax
.text:0026CA43                 mov     al, [ebx+5]
.text:0026CA46                 and     eax, 0FFFFFFFEh
.text:0026CA49                 mov     [ebp-39h], al
.text:0026CA4C                 test    al, 8
.text:0026CA4E                 jz      short loc_26CA96
.text:0026CA50                 add     ebx, 0FFFFFFE0h
.text:0026CA53                 mov     [ebp-98h], ebx
.text:0026CA59                 mov     eax, [ebp-1Ch]
.text:0026CA5C                 lea     ecx, [ebx+eax]
.text:0026CA5F                 mov     [ebp-28h], ecx
.text:0026CA62                 shl     edx, 4
.text:0026CA65                 sub     edx, eax
.text:0026CA67                 mov     [ebp-24h], edx
.text:0026CA6A                 push    8000h
.text:0026CA6F                 lea     eax, [ebp-24h]
.text:0026CA72                 push    eax
.text:0026CA73                 lea     eax, [ebp-28h]
.text:0026CA76                 push    eax
.text:0026CA77                 call    ds:dword_485E74
.text:0026CA7D                 mov     [ebp-0F8h], eax
.text:0026CA83                 test    eax, eax
.text:0026CA85                 jl      loc_26CEFC
.text:0026CA8B                 mov     eax, [ebp-24h]
.text:0026CA8E                 sub     [ebx+18h], eax
.text:0026CA91                 jmp     loc_26CEFC
.text:0026CA96 ; ---------------------------------------------------------------------------
.text:0026CA96
.text:0026CA96 loc_26CA96:                             ; CODE XREF: sub_26C8C6+188j
.text:0026CA96                 mov     esi, ecx
.text:0026CA98                 shl     esi, 4
.text:0026CA9B                 add     esi, ebx
.text:0026CA9D                 mov     [ebp-0F4h], esi
.text:0026CAA3                 mov     [esi+5], al
.text:0026CAA6                 mov     [esi+2], cx
.text:0026CAAA                 mov     dl, [ebx+4]
.text:0026CAAD                 mov     [esi+4], dl
.text:0026CAB0                 movzx   edi, word ptr [ebx]
.text:0026CAB3                 sub     edi, ecx
.text:0026CAB5                 mov     [ebp-78h], edi
.text:0026CAB8                 mov     [ebx], cx
.text:0026CABB                 mov     cl, [ebx+5]
.text:0026CABE                 and     cl, 0EFh
.text:0026CAC1                 mov     [ebx+5], cl
.text:0026CAC4                 test    al, 10h
.text:0026CAC6                 jz      loc_26CB6F
.text:0026CACC                 movzx   ecx, byte ptr [esi+4]
.text:0026CAD0                 mov     eax, [ebp+8]
.text:0026CAD3                 mov     ecx, [eax+ecx*4+60h]
.text:0026CAD7                 mov     [ebp-0A4h], ecx
.text:0026CADD                 mov     [ecx+40h], esi
.text:0026CAE0                 mov     [esi], di
.text:0026CAE3                 mov     cl, [esi+5]
.text:0026CAE6                 and     cl, 0F8h
.text:0026CAE9                 mov     [esi+5], cl
.text:0026CAEC                 cmp     di, 80h
.text:0026CAF1                 jnb     short loc_26CB34
.text:0026CAF3                 movzx   ecx, di
.text:0026CAF6                 lea     eax, [eax+ecx*8+180h]
.text:0026CAFD                 mov     [ebp-40h], eax
.text:0026CB00                 cmp     [eax], eax
.text:0026CB02                 jnz     short loc_26CB5B
.text:0026CB04                 movzx   ecx, word ptr [esi]
.text:0026CB07                 mov     edx, ecx
.text:0026CB09                 shr     edx, 3
.text:0026CB0C                 mov     [ebp-0D4h], edx
.text:0026CB12                 and     ecx, 7
.text:0026CB15                 xor     ebx, ebx
.text:0026CB17                 inc     ebx
.text:0026CB18                 shl     ebx, cl
.text:0026CB1A                 mov     [ebp-0ACh], ebx
.text:0026CB20                 mov     ecx, [ebp+8]
.text:0026CB23                 lea     ecx, [edx+ecx+160h]
.text:0026CB2A                 xor     edx, edx
.text:0026CB2C                 mov     dl, [ecx]
.text:0026CB2E                 or      edx, ebx
.text:0026CB30                 mov     [ecx], dl
.text:0026CB32                 jmp     short loc_26CB5B
.text:0026CB34 ; ---------------------------------------------------------------------------
.text:0026CB34
.text:0026CB34 loc_26CB34:                             ; CODE XREF: sub_26C8C6+22Bj
.text:0026CB34                 lea     edx, [eax+180h]
.text:0026CB3A                 mov     [ebp-40h], edx
.text:0026CB3D                 mov     eax, [edx]
.text:0026CB3F
.text:0026CB3F loc_26CB3F:                             ; CODE XREF: sub_26C8C6+290j
.text:0026CB3F                 mov     [ebp-58h], eax
.text:0026CB42                 cmp     edx, eax
.text:0026CB44                 jz      short loc_26CB58
.text:0026CB46                 lea     ecx, [eax-8]
.text:0026CB49                 mov     [ebp-0ECh], ecx
.text:0026CB4F                 cmp     di, [ecx]
.text:0026CB52                 jbe     short loc_26CB58
.text:0026CB54                 mov     eax, [eax]
.text:0026CB56                 jmp     short loc_26CB3F
.text:0026CB58 ; ---------------------------------------------------------------------------
.text:0026CB58
.text:0026CB58 loc_26CB58:                             ; CODE XREF: sub_26C8C6+27Ej
.text:0026CB58                                         ; sub_26C8C6+28Cj
.text:0026CB58                 mov     [ebp-40h], eax
.text:0026CB5B
.text:0026CB5B loc_26CB5B:                             ; CODE XREF: sub_26C8C6+23Cj
.text:0026CB5B                                         ; sub_26C8C6+26Cj
.text:0026CB5B                 mov     [ebp-0B4h], eax
.text:0026CB61                 mov     edx, [eax+4]
.text:0026CB64                 mov     [ebp-0DCh], edx
.text:0026CB6A                 jmp     loc_26CD83
.text:0026CB6F ; ---------------------------------------------------------------------------
.text:0026CB6F
.text:0026CB6F loc_26CB6F:                             ; CODE XREF: sub_26C8C6+200j
.text:0026CB6F                 mov     eax, edi
.text:0026CB71                 shl     eax, 4
.text:0026CB74                 lea     ebx, [eax+esi]
.text:0026CB77                 mov     [ebp-0BCh], ebx
.text:0026CB7D                 mov     al, [ebx+5]
.text:0026CB80                 test    al, 1
.text:0026CB82                 jz      loc_26CC20
.text:0026CB88                 mov     [esi], di
.text:0026CB8B                 mov     [ebx+2], di
.text:0026CB8F                 mov     al, [esi+5]
.text:0026CB92                 and     al, 0F8h
.text:0026CB94                 mov     [esi+5], al
.text:0026CB97                 cmp     di, 80h
.text:0026CB9C                 jnb     short loc_26CBE2
.text:0026CB9E                 movzx   eax, di
.text:0026CBA1                 mov     ecx, [ebp+8]
.text:0026CBA4                 lea     eax, [ecx+eax*8+180h]
.text:0026CBAB                 mov     [ebp-48h], eax
.text:0026CBAE                 cmp     [eax], eax
.text:0026CBB0                 jnz     short loc_26CC0C
.text:0026CBB2                 movzx   ecx, word ptr [esi]
.text:0026CBB5                 mov     edx, ecx
.text:0026CBB7                 shr     edx, 3
.text:0026CBBA                 mov     [ebp-0FCh], edx
.text:0026CBC0                 and     ecx, 7
.text:0026CBC3                 xor     ebx, ebx
.text:0026CBC5                 inc     ebx
.text:0026CBC6                 shl     ebx, cl
.text:0026CBC8                 mov     [ebp-0C4h], ebx
.text:0026CBCE                 mov     ecx, [ebp+8]
.text:0026CBD1                 lea     ecx, [edx+ecx+160h]
.text:0026CBD8                 xor     edx, edx
.text:0026CBDA                 mov     dl, [ecx]
.text:0026CBDC                 or      edx, ebx
.text:0026CBDE                 mov     [ecx], dl
.text:0026CBE0                 jmp     short loc_26CC0C
.text:0026CBE2 ; ---------------------------------------------------------------------------
.text:0026CBE2
.text:0026CBE2 loc_26CBE2:                             ; CODE XREF: sub_26C8C6+2D6j
.text:0026CBE2                 mov     edx, [ebp+8]
.text:0026CBE5                 add     edx, 180h
.text:0026CBEB                 mov     [ebp-48h], edx
.text:0026CBEE                 mov     eax, [edx]
.text:0026CBF0
.text:0026CBF0 loc_26CBF0:                             ; CODE XREF: sub_26C8C6+341j
.text:0026CBF0                 mov     [ebp-70h], eax
.text:0026CBF3                 cmp     edx, eax
.text:0026CBF5                 jz      short loc_26CC09
.text:0026CBF7                 lea     ecx, [eax-8]
.text:0026CBFA                 mov     [ebp-0E4h], ecx
.text:0026CC00                 cmp     di, [ecx]
.text:0026CC03                 jbe     short loc_26CC09
.text:0026CC05                 mov     eax, [eax]
.text:0026CC07                 jmp     short loc_26CBF0
.text:0026CC09 ; ---------------------------------------------------------------------------
.text:0026CC09
.text:0026CC09 loc_26CC09:                             ; CODE XREF: sub_26C8C6+32Fj
.text:0026CC09                                         ; sub_26C8C6+33Dj
.text:0026CC09                 mov     [ebp-48h], eax
.text:0026CC0C
.text:0026CC0C loc_26CC0C:                             ; CODE XREF: sub_26C8C6+2EAj
.text:0026CC0C                                         ; sub_26C8C6+31Aj
.text:0026CC0C                 mov     [ebp-0CCh], eax
.text:0026CC12                 mov     edx, [eax+4]
.text:0026CC15                 mov     [ebp-9Ch], edx
.text:0026CC1B                 jmp     loc_26CD83
.text:0026CC20 ; ---------------------------------------------------------------------------
.text:0026CC20
.text:0026CC20 loc_26CC20:                             ; CODE XREF: sub_26C8C6+2BCj
.text:0026CC20                 mov     [esi+5], al
.text:0026CC23                 mov     eax, [ebx+8]
.text:0026CC26                 mov     [ebp-0A0h], eax
.text:0026CC2C                 mov     ecx, [ebx+0Ch]
.text:0026CC2F                 mov     [ebp-0A8h], ecx
.text:0026CC35                 mov     [ecx], eax
.text:0026CC37                 mov     [eax+4], ecx
.text:0026CC3A                 cmp     eax, ecx
.text:0026CC3C                 jnz     short loc_26CC80
.text:0026CC3E                 mov     ax, [ebx]
.text:0026CC41                 cmp     ax, 80h
.text:0026CC45                 jnb     short loc_26CC80
.text:0026CC47                 movzx   ecx, ax
.text:0026CC4A                 mov     eax, ecx
.text:0026CC4C                 shr     eax, 3
.text:0026CC4F                 mov     [ebp-0B0h], eax
.text:0026CC55                 and     ecx, 7
.text:0026CC58                 xor     edx, edx
.text:0026CC5A                 inc     edx
.text:0026CC5B                 shl     edx, cl
.text:0026CC5D                 mov     [ebp-60h], edx
.text:0026CC60                 mov     edx, [ebp+8]
.text:0026CC63                 lea     eax, [eax+edx+160h]
.text:0026CC6A                 mov     [ebp-88h], eax
.text:0026CC70                 movzx   eax, byte ptr [eax]
.text:0026CC73                 xor     eax, [ebp-60h]
.text:0026CC76                 mov     ecx, [ebp-88h]
.text:0026CC7C                 mov     [ecx], al
.text:0026CC7E                 jmp     short loc_26CC83
.text:0026CC80 ; ---------------------------------------------------------------------------
.text:0026CC80
.text:0026CC80 loc_26CC80:                             ; CODE XREF: sub_26C8C6+376j
.text:0026CC80                                         ; sub_26C8C6+37Fj
.text:0026CC80                 mov     edx, [ebp+8]
.text:0026CC83
.text:0026CC83 loc_26CC83:                             ; CODE XREF: sub_26C8C6+3B8j
.text:0026CC83                 mov     cl, [ebx+5]
.text:0026CC86                 test    cl, 4
.text:0026CC89                 jz      short loc_26CCC0
.text:0026CC8B                 movzx   eax, word ptr [ebx]
.text:0026CC8E                 shl     eax, 4
.text:0026CC91                 sub     eax, 18h
.text:0026CC94                 mov     [ebp-68h], eax
.text:0026CC97                 test    cl, 2
.text:0026CC9A                 jz      short loc_26CCA7
.text:0026CC9C                 cmp     eax, 4
.text:0026CC9F                 jbe     short loc_26CCA7
.text:0026CCA1                 sub     eax, 4
.text:0026CCA4                 mov     [ebp-68h], eax
.text:0026CCA7
.text:0026CCA7 loc_26CCA7:                             ; CODE XREF: sub_26C8C6+3D4j
.text:0026CCA7                                         ; sub_26C8C6+3D9j
.text:0026CCA7                 push    0FEEEFEEEh
.text:0026CCAC                 push    eax
.text:0026CCAD                 lea     eax, [ebx+18h]
.text:0026CCB0                 push    eax
.text:0026CCB1                 call    ds:dword_485F24
.text:0026CCB7                 mov     [ebp-0B8h], eax
.text:0026CCBD                 mov     edx, [ebp+8]
.text:0026CCC0
.text:0026CCC0 loc_26CCC0:                             ; CODE XREF: sub_26C8C6+3C3j
.text:0026CCC0                 movzx   eax, word ptr [ebx]
.text:0026CCC3                 sub     [edx+30h], eax
.text:0026CCC6                 movzx   eax, word ptr [ebx]
.text:0026CCC9                 add     edi, eax
.text:0026CCCB                 mov     [ebp-78h], edi
.text:0026CCCE                 cmp     edi, 0FF00h
.text:0026CCD4                 ja      loc_26CD9B
.text:0026CCDA                 mov     [esi], di
.text:0026CCDD                 test    byte ptr [esi+5], 10h
.text:0026CCE1                 jnz     short loc_26CCEF
.text:0026CCE3                 mov     eax, edi
.text:0026CCE5                 shl     eax, 4
.text:0026CCE8                 mov     [eax+esi+2], di
.text:0026CCED                 jmp     short loc_26CD00
.text:0026CCEF ; ---------------------------------------------------------------------------
.text:0026CCEF
.text:0026CCEF loc_26CCEF:                             ; CODE XREF: sub_26C8C6+41Bj
.text:0026CCEF                 movzx   eax, byte ptr [esi+4]
.text:0026CCF3                 mov     eax, [edx+eax*4+60h]
.text:0026CCF7                 mov     [ebp-0C0h], eax
.text:0026CCFD                 mov     [eax+40h], esi
.text:0026CD00
.text:0026CD00 loc_26CD00:                             ; CODE XREF: sub_26C8C6+427j
.text:0026CD00                 mov     al, [esi+5]
.text:0026CD03                 and     al, 0F8h
.text:0026CD05                 mov     [esi+5], al
.text:0026CD08                 cmp     di, 80h
.text:0026CD0D                 jnb     short loc_26CD4D
.text:0026CD0F                 movzx   eax, di
.text:0026CD12                 lea     eax, [edx+eax*8+180h]
.text:0026CD19                 mov     [ebp-44h], eax
.text:0026CD1C                 cmp     [eax], eax
.text:0026CD1E                 jnz     short loc_26CD74
.text:0026CD20                 movzx   ecx, word ptr [esi]
.text:0026CD23                 mov     ebx, ecx
.text:0026CD25                 shr     ebx, 3
.text:0026CD28                 mov     [ebp-54h], ebx
.text:0026CD2B                 and     ecx, 7
.text:0026CD2E                 xor     ebx, ebx
.text:0026CD30                 inc     ebx
.text:0026CD31                 shl     ebx, cl
.text:0026CD33                 mov     [ebp-0C8h], ebx
.text:0026CD39                 mov     ecx, [ebp-54h]
.text:0026CD3C                 lea     edx, [ecx+edx+160h]
.text:0026CD43                 xor     ecx, ecx
.text:0026CD45                 mov     cl, [edx]
.text:0026CD47                 or      ecx, ebx
.text:0026CD49                 mov     [edx], cl
.text:0026CD4B                 jmp     short loc_26CD74
.text:0026CD4D ; ---------------------------------------------------------------------------
.text:0026CD4D
.text:0026CD4D loc_26CD4D:                             ; CODE XREF: sub_26C8C6+447j
.text:0026CD4D                 add     edx, 180h
.text:0026CD53                 mov     [ebp-44h], edx
.text:0026CD56                 mov     eax, [edx]
.text:0026CD58
.text:0026CD58 loc_26CD58:                             ; CODE XREF: sub_26C8C6+4A9j
.text:0026CD58                 mov     [ebp-5Ch], eax
.text:0026CD5B                 cmp     edx, eax
.text:0026CD5D                 jz      short loc_26CD71
.text:0026CD5F                 lea     ecx, [eax-8]
.text:0026CD62                 mov     [ebp-0D0h], ecx
.text:0026CD68                 cmp     di, [ecx]
.text:0026CD6B                 jbe     short loc_26CD71
.text:0026CD6D                 mov     eax, [eax]
.text:0026CD6F                 jmp     short loc_26CD58
.text:0026CD71 ; ---------------------------------------------------------------------------
.text:0026CD71
.text:0026CD71 loc_26CD71:                             ; CODE XREF: sub_26C8C6+497j
.text:0026CD71                                         ; sub_26C8C6+4A5j
.text:0026CD71                 mov     [ebp-44h], eax
.text:0026CD74
.text:0026CD74 loc_26CD74:                             ; CODE XREF: sub_26C8C6+458j
.text:0026CD74                                         ; sub_26C8C6+485j
.text:0026CD74                 mov     [ebp-0D8h], eax
.text:0026CD7A                 mov     edx, [eax+4]
.text:0026CD7D                 mov     [ebp-0E0h], edx
.text:0026CD83
.text:0026CD83 loc_26CD83:                             ; CODE XREF: sub_26C8C6+2A4j
.text:0026CD83                                         ; sub_26C8C6+355j
.text:0026CD83                 lea     ecx, [esi+8]
.text:0026CD86                 mov     [ecx], eax
.text:0026CD88                 mov     [esi+0Ch], edx
.text:0026CD8B                 mov     [edx], ecx
.text:0026CD8D                 mov     [eax+4], ecx
.text:0026CD90                 mov     eax, [ebp-2Ch]
.text:0026CD93                 add     [eax+30h], edi
.text:0026CD96                 jmp     loc_26CEFC
.text:0026CD9B ; ---------------------------------------------------------------------------
.text:0026CD9B
.text:0026CD9B loc_26CD9B:                             ; CODE XREF: sub_26C8C6+40Ej
.text:0026CD9B                 push    edi
.text:0026CD9C                 push    esi
.text:0026CD9D                 push    dword ptr [ebp+8]
.text:0026CDA0                 call    sub_26B012
.text:0026CDA5                 jmp     loc_26CEFC
.text:0026CDAA ; ---------------------------------------------------------------------------
.text:0026CDAA
.text:0026CDAA loc_26CDAA:                             ; CODE XREF: sub_26C8C6+FCj
.text:0026CDAA                 test    cl, cl
.text:0026CDAC                 jnz     short loc_26CDC9
.text:0026CDAE                 push    edi
.text:0026CDAF                 push    dword ptr [ebp+14h]
.text:0026CDB2                 push    ebx
.text:0026CDB3                 push    dword ptr [ebp+0Ch]
.text:0026CDB6                 push    dword ptr [ebp+8]
.text:0026CDB9                 call    sub_26B1B7
.text:0026CDBE                 test    al, al
.text:0026CDC0                 jnz     loc_26CEFC
.text:0026CDC6                 mov     esi, [ebp-30h]
.text:0026CDC9
.text:0026CDC9 loc_26CDC9:                             ; CODE XREF: sub_26C8C6+4E6j
.text:0026CDC9                 test    byte ptr [ebp+0Ch], 10h
.text:0026CDCD                 jz      short loc_26CDD8
.text:0026CDCF                 and     dword ptr [ebp+10h], 0
.text:0026CDD3                 jmp     loc_26CEFC
.text:0026CDD8 ; ---------------------------------------------------------------------------
.text:0026CDD8
.text:0026CDD8 loc_26CDD8:                             ; CODE XREF: sub_26C8C6+507j
.text:0026CDD8                 and     word ptr [ebp+0Eh], 0C003h
.text:0026CDDE                 xor     eax, eax
.text:0026CDE0                 mov     al, [ebx+5]
.text:0026CDE3                 test    al, 2
.text:0026CDE5                 jz      short loc_26CE46
.text:0026CDE7                 and     byte ptr [ebp+0Dh], 0F1h
.text:0026CDEB                 and     eax, 0E0h
.text:0026CDF0                 or      eax, 10h
.text:0026CDF3                 shl     eax, 4
.text:0026CDF6                 or      [ebp+0Ch], eax
.text:0026CDF9                 push    ebx
.text:0026CDFA                 call    _RtlpGetExtraStuffPointer@4 ; RtlpGetExtraStuffPointer(x)
.text:0026CDFF                 mov     [ebp-4Ch], eax
.text:0026CE02                 mov     dword ptr [ebp-4], 2
.text:0026CE09                 mov     ax, [eax+2]
.text:0026CE0D                 test    ax, ax
.text:0026CE10                 jz      short loc_26CE1F
.text:0026CE12                 test    ah, ah
.text:0026CE14                 js      short loc_26CE1F
.text:0026CE16                 movzx   eax, ax
.text:0026CE19                 shl     eax, 12h
.text:0026CE1C                 or      [ebp+0Ch], eax
.text:0026CE1F
.text:0026CE1F loc_26CE1F:                             ; CODE XREF: sub_26C8C6+54Aj
.text:0026CE1F                                         ; sub_26C8C6+54Ej
.text:0026CE1F                 mov     dword ptr [ebp-4], 1
.text:0026CE26                 jmp     short loc_26CE56
.text:0026CE28 ; ---------------------------------------------------------------------------
.text:0026CE28                 xor     eax, eax
.text:0026CE2A                 inc     eax
.text:0026CE2B                 retn
.text:0026CE2C ; ---------------------------------------------------------------------------
.text:0026CE2C                 mov     esp, [ebp-18h]
.text:0026CE2F                 mov     ebx, [ebp-64h]
.text:0026CE32                 mov     al, [ebx+5]
.text:0026CE35                 and     al, 0FDh
.text:0026CE37                 mov     [ebx+5], al
.text:0026CE3A                 mov     dword ptr [ebp-4], 1
.text:0026CE41                 mov     esi, [ebp-30h]
.text:0026CE44                 jmp     short loc_26CE56
.text:0026CE46 ; ---------------------------------------------------------------------------
.text:0026CE46
.text:0026CE46 loc_26CE46:                             ; CODE XREF: sub_26C8C6+51Fj
.text:0026CE46                 mov     al, [ebx+7]
.text:0026CE49                 test    al, al
.text:0026CE4B                 jz      short loc_26CE56
.text:0026CE4D                 movzx   eax, al
.text:0026CE50                 shl     eax, 12h
.text:0026CE53                 or      [ebp+0Ch], eax
.text:0026CE56
.text:0026CE56 loc_26CE56:                             ; CODE XREF: sub_26C8C6+560j
.text:0026CE56                                         ; sub_26C8C6+57Ej ...
.text:0026CE56                 push    dword ptr [ebp+14h]
.text:0026CE59                 mov     eax, [ebp+0Ch]
.text:0026CE5C                 and     eax, 0FFFFFFF7h
.text:0026CE5F                 push    eax
.text:0026CE60                 push    dword ptr [ebp+8]
.text:0026CE63                 call    sub_26BF57
.text:0026CE68                 mov     [ebp-34h], eax
.text:0026CE6B                 test    eax, eax
.text:0026CE6D                 jz      loc_26CEF9
.text:0026CE73                 add     eax, 0FFFFFFF0h
.text:0026CE76                 mov     [ebp-0E8h], eax
.text:0026CE7C                 test    byte ptr [eax+5], 2
.text:0026CE80                 jz      short loc_26CEAA
.text:0026CE82                 push    eax
.text:0026CE83                 call    _RtlpGetExtraStuffPointer@4 ; RtlpGetExtraStuffPointer(x)
.text:0026CE88                 mov     edi, eax
.text:0026CE8A                 mov     [ebp-6Ch], edi
.text:0026CE8D                 test    byte ptr [ebx+5], 2
.text:0026CE91                 jz      short loc_26CEA4
.text:0026CE93                 push    ebx
.text:0026CE94                 call    _RtlpGetExtraStuffPointer@4 ; RtlpGetExtraStuffPointer(x)
.text:0026CE99                 mov     [ebp-4Ch], eax
.text:0026CE9C                 mov     eax, [eax+4]
.text:0026CE9F                 mov     [edi+4], eax
.text:0026CEA2                 jmp     short loc_26CEAA
.text:0026CEA4 ; ---------------------------------------------------------------------------
.text:0026CEA4
.text:0026CEA4 loc_26CEA4:                             ; CODE XREF: sub_26C8C6+5CBj
.text:0026CEA4                 xor     eax, eax
.text:0026CEA6                 stosd
.text:0026CEA7                 stosd
.text:0026CEA8                 stosd
.text:0026CEA9                 stosd
.text:0026CEAA
.text:0026CEAA loc_26CEAA:                             ; CODE XREF: sub_26C8C6+5BAj
.text:0026CEAA                                         ; sub_26C8C6+5DCj
.text:0026CEAA                 mov     eax, [ebp+14h]
.text:0026CEAD                 cmp     eax, esi
.text:0026CEAF                 jb      short loc_26CEB3
.text:0026CEB1                 mov     eax, esi
.text:0026CEB3
.text:0026CEB3 loc_26CEB3:                             ; CODE XREF: sub_26C8C6+5E9j
.text:0026CEB3                 push    eax
.text:0026CEB4                 push    dword ptr [ebp+10h]
.text:0026CEB7                 push    dword ptr [ebp-34h]
.text:0026CEBA                 call    unknown_libname_80 ; XBOX Flirt v2.00 Final.
.text:0026CEBF                 add     esp, 0Ch
.text:0026CEC2                 cmp     [ebp+14h], esi
.text:0026CEC5                 jbe     short loc_26CEE8
.text:0026CEC7                 test    byte ptr [ebp+0Ch], 8
.text:0026CECB                 jz      short loc_26CEE8
.text:0026CECD                 mov     ecx, [ebp+14h]
.text:0026CED0                 sub     ecx, esi
.text:0026CED2                 xor     eax, eax
.text:0026CED4                 mov     edx, [ebp-34h]
.text:0026CED7                 lea     edi, [edx+esi]
.text:0026CEDA                 mov     edx, ecx
.text:0026CEDC                 shr     ecx, 2
.text:0026CEDF                 rep stosd
.text:0026CEE1                 mov     ecx, edx
.text:0026CEE3                 and     ecx, 3
.text:0026CEE6                 rep stosb
.text:0026CEE8
.text:0026CEE8 loc_26CEE8:                             ; CODE XREF: sub_26C8C6+5FFj
.text:0026CEE8                                         ; sub_26C8C6+605j
.text:0026CEE8                 push    dword ptr [ebp+10h]
.text:0026CEEB                 push    dword ptr [ebp+0Ch]
.text:0026CEEE                 push    dword ptr [ebp+8]
.text:0026CEF1                 call    sub_26C6D2
.text:0026CEF6                 mov     eax, [ebp-34h]
.text:0026CEF9
.text:0026CEF9 loc_26CEF9:                             ; CODE XREF: sub_26C8C6+5A7j
.text:0026CEF9                 mov     [ebp+10h], eax
.text:0026CEFC
.text:0026CEFC loc_26CEFC:                             ; CODE XREF: sub_26C8C6+175j
.text:0026CEFC                                         ; sub_26C8C6+1BFj ...
.text:0026CEFC                 cmp     dword ptr [ebp+10h], 0
.text:0026CF00                 jnz     short loc_26CF5D
.text:0026CF02                 test    byte ptr [ebp+0Ch], 4
.text:0026CF06                 jz      short loc_26CF5D
.text:0026CF08                 mov     dword ptr [ebp-14Ch], 0C0000017h
.text:0026CF12                 and     dword ptr [ebp-144h], 0
.text:0026CF19                 mov     dword ptr [ebp-13Ch], 1
.text:0026CF23                 and     dword ptr [ebp-148h], 0
.text:0026CF2A                 mov     eax, [ebp-1Ch]
.text:0026CF2D                 mov     [ebp-138h], eax
.text:0026CF33                 lea     eax, [ebp-14Ch]
.text:0026CF39                 push    eax
.text:0026CF3A                 call    ds:dword_485E40
.text:0026CF40                 jmp     short loc_26CF5D
.text:0026CF42 ; ---------------------------------------------------------------------------
.text:0026CF42
.text:0026CF42 loc_26CF42:                             ; DATA XREF: .rdata:004CE990o
.text:0026CF42                 mov     eax, [ebp-14h]
.text:0026CF45                 mov     eax, [eax]
.text:0026CF47                 mov     eax, [eax]
.text:0026CF49                 xor     ecx, ecx
.text:0026CF4B                 cmp     eax, 0C0000017h
.text:0026CF50                 setnz   cl
.text:0026CF53                 mov     eax, ecx
.text:0026CF55                 retn
.text:0026CF56 ; ---------------------------------------------------------------------------
.text:0026CF56
.text:0026CF56 loc_26CF56:                             ; DATA XREF: .rdata:004CE994o
.text:0026CF56                 mov     esp, [ebp-18h]
.text:0026CF59                 and     dword ptr [ebp+10h], 0
.text:0026CF5D
.text:0026CF5D loc_26CF5D:                             ; CODE XREF: sub_26C8C6+99j
.text:0026CF5D                                         ; sub_26C8C6+63Aj ...
.text:0026CF5D                 and     dword ptr [ebp-4], 0
.text:0026CF61                 or      dword ptr [ebp-4], 0FFFFFFFFh
.text:0026CF65                 call    sub_26CFDE
.text:0026CF6A                 mov     ecx, [ebp+10h]
.text:0026CF6D                 cmp     [ebp-74h], ecx
.text:0026CF70                 jnz     short loc_26CFD4
.text:0026CF72                 mov     [ebp-94h], ecx
.text:0026CF78                 and     dword ptr [ebp-90h], 0
.text:0026CF7F                 and     dword ptr [ebp-8Ch], 0
.text:0026CF86                 mov     eax, large fs:20h
.text:0026CF8C                 mov     eax, [eax+250h]
.text:0026CF92                 test    eax, eax
.text:0026CF94                 jz      short loc_26CFA5
.text:0026CF96                 lea     ecx, [ebp-94h]
.text:0026CF9C                 push    ecx
.text:0026CF9D                 push    0Bh
.text:0026CF9F                 call    dword ptr [eax+14h]
.text:0026CFA2                 mov     ecx, [ebp+10h]
.text:0026CFA5
.text:0026CFA5 loc_26CFA5:                             ; CODE XREF: sub_26C8C6+6CEj
.text:0026CFA5                 mov     [ebp-84h], ecx
.text:0026CFAB                 mov     eax, [ebp+14h]
.text:0026CFAE                 mov     [ebp-80h], eax
.text:0026CFB1                 and     dword ptr [ebp-7Ch], 0
.text:0026CFB5                 mov     eax, large fs:20h
.text:0026CFBB                 mov     eax, [eax+250h]
.text:0026CFC1                 test    eax, eax
.text:0026CFC3                 jz      short loc_26CFD4
.text:0026CFC5                 lea     ecx, [ebp-84h]
.text:0026CFCB                 push    ecx
.text:0026CFCC                 push    0Ah
.text:0026CFCE                 call    dword ptr [eax+14h]
.text:0026CFD1                 mov     ecx, [ebp+10h]
.text:0026CFD4
.text:0026CFD4 loc_26CFD4:                             ; CODE XREF: sub_26C8C6+6AAj
.text:0026CFD4                                         ; sub_26C8C6+6FDj
.text:0026CFD4                 mov     eax, ecx
.text:0026CFD6
.text:0026CFD6 loc_26CFD6:                             ; CODE XREF: sub_26C8C6+36j
.text:0026CFD6                 call    __SEH_epilog
.text:0026CFDB                 retn    10h
.text:0026CFDB sub_26C8C6      endp
.text:0026CFDB
.text:0026CFDE
.text:0026CFDE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026CFDE
.text:0026CFDE
.text:0026CFDE sub_26CFDE      proc near               ; CODE XREF: sub_26C8C6+69Fp
.text:0026CFDE                                         ; DATA XREF: .rdata:004CE988o
.text:0026CFDE                 cmp     byte ptr [ebp-1Dh], 0
.text:0026CFE2                 jz      short locret_26CFF3
.text:0026CFE4                 mov     eax, [ebp-2Ch]
.text:0026CFE7                 push    dword ptr [eax+580h]
.text:0026CFED                 call    ds:dword_485D88
.text:0026CFF3
.text:0026CFF3 locret_26CFF3:                          ; CODE XREF: sub_26CFDE+4j
.text:0026CFF3                 retn
.text:0026CFF3 sub_26CFDE      endp
.text:0026CFF3
.text:0026CFF4 ; [0000001B BYTES: COLLAPSED FUNCTION XAutoPowerDownResetTimer(). PRESS KEYPAD "+" TO EXPAND]
.text:0026D00F ; [00000012 BYTES: COLLAPSED FUNCTION XapiAutoPowerDownTimeout(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026D021
.text:0026D021 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D021
.text:0026D021 ; Attributes: bp-based frame
.text:0026D021
.text:0026D021 sub_26D021      proc near               ; CODE XREF: sub_269696+1Dp
.text:0026D021
.text:0026D021 var_C           = dword ptr -0Ch
.text:0026D021 var_8           = dword ptr -8
.text:0026D021 var_4           = dword ptr -4
.text:0026D021
.text:0026D021                 push    ebp
.text:0026D022                 mov     ebp, esp
.text:0026D024                 sub     esp, 0Ch
.text:0026D027                 push    0
.text:0026D029                 push    offset _XapiAutoPowerDownTimeout@16 ; XapiAutoPowerDownTimeout(x,x,x,x)
.text:0026D02E                 push    offset dword_5E7300
.text:0026D033                 call    ds:dword_485ED8
.text:0026D039                 push    0
.text:0026D03B                 push    offset dword_5E7320
.text:0026D040                 call    ds:dword_485ED4
.text:0026D046                 mov     eax, ds:dword_485EEC
.text:0026D04B                 and     dword_5E7348, 0
.text:0026D052                 and     dword_5E734C, 0
.text:0026D059                 test    byte ptr [eax], 8
.text:0026D05C                 jnz     short loc_26D08E
.text:0026D05E                 lea     eax, [ebp+var_8]
.text:0026D061                 push    eax
.text:0026D062                 push    4
.text:0026D064                 lea     eax, [ebp+var_4]
.text:0026D067                 push    eax
.text:0026D068                 lea     eax, [ebp+var_C]
.text:0026D06B                 push    eax
.text:0026D06C                 push    11h
.text:0026D06E                 call    _XQueryValue@20 ; XQueryValue(x,x,x,x,x)
.text:0026D073                 test    eax, eax
.text:0026D075                 jnz     short loc_26D084
.text:0026D077                 mov     eax, [ebp+var_4]
.text:0026D07A                 and     eax, 1
.text:0026D07D                 mov     dword_5E7348, eax
.text:0026D082                 jmp     short loc_26D08E
.text:0026D084 ; ---------------------------------------------------------------------------
.text:0026D084
.text:0026D084 loc_26D084:                             ; CODE XREF: sub_26D021+54j
.text:0026D084                 mov     dword_5E734C, 1
.text:0026D08E
.text:0026D08E loc_26D08E:                             ; CODE XREF: sub_26D021+3Bj
.text:0026D08E                                         ; sub_26D021+61j
.text:0026D08E                 call    _XAutoPowerDownResetTimer@0 ; XAutoPowerDownResetTimer()
.text:0026D093                 leave
.text:0026D094                 retn
.text:0026D094 sub_26D021      endp
.text:0026D094
.text:0026D095 ; ---------------------------------------------------------------------------
.text:0026D095
.text:0026D095 loc_26D095:                             ; DATA XREF: .text:0026D0C7o
.text:0026D095                 mov     eax, ds:dword_485F2C
.text:0026D09A                 and     dword ptr [eax+20h], 0
.text:0026D09E                 push    0
.text:0026D0A0                 push    1
.text:0026D0A2                 push    offset off_56E290
.text:0026D0A7                 call    ds:dword_485ECC
.text:0026D0AD                 retn
.text:0026D0AE ; [00000003 BYTES: COLLAPSED FUNCTION nullsub_37. PRESS KEYPAD "+" TO EXPAND]
.text:0026D0B1 ; ---------------------------------------------------------------------------
.text:0026D0B1
.text:0026D0B1 loc_26D0B1:                             ; DATA XREF: .data:off_56E280o
.text:0026D0B1                 push    esi
.text:0026D0B2                 mov     esi, ds:dword_485F2C
.text:0026D0B8                 call    ds:dword_485E6C
.text:0026D0BE                 mov     cl, al
.text:0026D0C0                 mov     dword ptr [esi+10h], offset nullsub_37
.text:0026D0C7                 mov     dword ptr [esi+14h], offset loc_26D095
.text:0026D0CE                 call    ds:dword_485E68
.text:0026D0D4                 xor     eax, eax
.text:0026D0D6                 cmp     [esi+20h], eax
.text:0026D0D9                 pop     esi
.text:0026D0DA                 jz      short loc_26D0EC
.text:0026D0DC                 push    eax
.text:0026D0DD                 push    eax
.text:0026D0DE                 push    1
.text:0026D0E0                 push    eax
.text:0026D0E1                 push    offset off_56E290
.text:0026D0E6                 call    ds:dword_485ED0
.text:0026D0EC
.text:0026D0EC loc_26D0EC:                             ; CODE XREF: .text:0026D0DAj
.text:0026D0EC                 mov     eax, dword_5E7358
.text:0026D0F1                 mov     ecx, dword_5E735C
.text:0026D0F7                 mov     edx, eax
.text:0026D0F9                 or      edx, ecx
.text:0026D0FB                 jz      short locret_26D104
.text:0026D0FD                 push    ecx
.text:0026D0FE                 push    eax
.text:0026D0FF                 call    sub_26D950
.text:0026D104
.text:0026D104 locret_26D104:                          ; CODE XREF: .text:0026D0FBj
.text:0026D104                 retn    4
.text:0026D104 ; ---------------------------------------------------------------------------
.text:0026D107                 align 10h
.text:0026D110
.text:0026D110 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D110
.text:0026D110
.text:0026D110 sub_26D110      proc near               ; CODE XREF: unknown_libname_42+7Dp
.text:0026D110                                         ; sub_26BF57+190p ...
.text:0026D110                 bsf     eax, ecx
.text:0026D113                 retn
.text:0026D113 sub_26D110      endp
.text:0026D113
.text:0026D114 ; [0000003E BYTES: COLLAPSED FUNCTION XapiComputeContentMetadataFileName(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026D152
.text:0026D152 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D152
.text:0026D152 ; Attributes: library function
.text:0026D152
.text:0026D152 ; __stdcall XComputeContentSignatureKey(x,x)
.text:0026D152 _XComputeContentSignatureKey@8 proc near
.text:0026D152                                         ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+20p
.text:0026D152
.text:0026D152 arg_0           = dword ptr  4
.text:0026D152 arg_4           = dword ptr  8
.text:0026D152
.text:0026D152                 push    [esp+arg_4]
.text:0026D156                 lea     eax, [esp+4+arg_0]
.text:0026D15A                 push    0
.text:0026D15C                 push    0
.text:0026D15E                 push    4
.text:0026D160                 push    eax
.text:0026D161                 push    10h
.text:0026D163                 push    ds:dword_485E5C
.text:0026D169                 call    sub_26F96A
.text:0026D16E                 retn    8
.text:0026D16E _XComputeContentSignatureKey@8 endp ; sp = -1Ch
.text:0026D16E
.text:0026D171
.text:0026D171 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D171
.text:0026D171 ; Attributes: library function bp-based frame fpd=68h
.text:0026D171
.text:0026D171 ; __stdcall XapiComputeContentHeaderSignature(x,x,x,x)
.text:0026D171 _XapiComputeContentHeaderSignature@16 proc near ; CODE XREF: sub_26D256+BBp
.text:0026D171                                         ; sub_26D51A+166p
.text:0026D171
.text:0026D171 var_290         = dword ptr -290h
.text:0026D171 var_90          = dword ptr -90h
.text:0026D171 var_1C          = dword ptr -1Ch
.text:0026D171 var_8           = dword ptr -8
.text:0026D171 var_4           = dword ptr -4
.text:0026D171 arg_0           = dword ptr  8
.text:0026D171 arg_4           = dword ptr  0Ch
.text:0026D171 arg_8           = dword ptr  10h
.text:0026D171 arg_C           = dword ptr  14h
.text:0026D171
.text:0026D171                 push    ebp
.text:0026D172                 lea     ebp, [esp-68h]
.text:0026D176                 sub     esp, 290h
.text:0026D17C                 mov     eax, [ebp+68h+arg_4]
.text:0026D17F                 test    eax, eax
.text:0026D181                 push    ebx
.text:0026D182                 push    esi
.text:0026D183                 mov     esi, [ebp+68h+arg_8]
.text:0026D186                 push    edi
.text:0026D187                 jnz     short loc_26D18C
.text:0026D189                 mov     eax, [esi+24h]
.text:0026D18C
.text:0026D18C loc_26D18C:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+16j
.text:0026D18C                 lea     ecx, [ebp+68h+var_1C]
.text:0026D18F                 push    ecx
.text:0026D190                 push    eax
.text:0026D191                 call    _XComputeContentSignatureKey@8 ; XComputeContentSignatureKey(x,x)
.text:0026D196                 mov     eax, [esi+18h]
.text:0026D199                 mov     edi, 88h
.text:0026D19E                 cmp     eax, edi
.text:0026D1A0                 mov     ebx, edi
.text:0026D1A2                 jnb     short loc_26D1A6
.text:0026D1A4                 mov     ebx, eax
.text:0026D1A6
.text:0026D1A6 loc_26D1A6:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+31j
.text:0026D1A6                 lea     eax, [ebp+68h+var_90]
.text:0026D1A9                 push    eax
.text:0026D1AA                 push    14h
.text:0026D1AC                 lea     eax, [ebp+68h+var_1C]
.text:0026D1AF                 push    eax
.text:0026D1B0                 call    _XShaHmacInitialize@12 ; XShaHmacInitialize(x,x,x)
.text:0026D1B5                 add     ebx, 0FFFFFFECh
.text:0026D1B8                 push    ebx
.text:0026D1B9                 lea     eax, [esi+14h]
.text:0026D1BC                 push    eax
.text:0026D1BD                 lea     eax, [ebp+68h+var_90]
.text:0026D1C0                 push    eax
.text:0026D1C1                 call    sub_266A61
.text:0026D1C6                 xor     eax, eax
.text:0026D1C8                 cmp     [ebp+68h+arg_0], eax
.text:0026D1CB                 jz      short loc_26D226
.text:0026D1CD                 mov     esi, [esi+18h]
.text:0026D1D0                 cmp     esi, edi
.text:0026D1D2                 jbe     short loc_26D226
.text:0026D1D4                 lea     edi, [esi-88h]
.text:0026D1DA                 cmp     edi, eax
.text:0026D1DC                 jz      short loc_26D226
.text:0026D1DE                 mov     ebx, 200h
.text:0026D1E3                 jmp     short loc_26D1E7
.text:0026D1E5 ; ---------------------------------------------------------------------------
.text:0026D1E5
.text:0026D1E5 loc_26D1E5:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+B3j
.text:0026D1E5                 xor     eax, eax
.text:0026D1E7
.text:0026D1E7 loc_26D1E7:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+72j
.text:0026D1E7                 cmp     edi, ebx
.text:0026D1E9                 mov     esi, ebx
.text:0026D1EB                 jnb     short loc_26D1EF
.text:0026D1ED                 mov     esi, edi
.text:0026D1EF
.text:0026D1EF loc_26D1EF:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+7Aj
.text:0026D1EF                 push    eax
.text:0026D1F0                 push    esi
.text:0026D1F1                 lea     ecx, [ebp+68h+var_290]
.text:0026D1F7                 push    ecx
.text:0026D1F8                 lea     ecx, [ebp+68h+var_8]
.text:0026D1FB                 push    ecx
.text:0026D1FC                 push    eax
.text:0026D1FD                 push    eax
.text:0026D1FE                 push    eax
.text:0026D1FF                 push    [ebp+68h+arg_0]
.text:0026D202                 call    ds:dword_485DFC
.text:0026D208                 test    eax, eax
.text:0026D20A                 jl      short loc_26D245
.text:0026D20C                 cmp     [ebp+68h+var_4], esi
.text:0026D20F                 jnz     short loc_26D248
.text:0026D211                 push    esi
.text:0026D212                 lea     eax, [ebp+68h+var_290]
.text:0026D218                 push    eax
.text:0026D219                 lea     eax, [ebp+68h+var_90]
.text:0026D21C                 push    eax
.text:0026D21D                 call    sub_266A61
.text:0026D222                 sub     edi, esi
.text:0026D224                 jnz     short loc_26D1E5
.text:0026D226
.text:0026D226 loc_26D226:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+5Aj
.text:0026D226                                         ; XapiComputeContentHeaderSignature(x,x,x,x)+61j ...
.text:0026D226                 push    [ebp+68h+arg_C]
.text:0026D229                 lea     eax, [ebp+68h+var_1C]
.text:0026D22C                 push    14h
.text:0026D22E                 push    eax
.text:0026D22F                 lea     eax, [ebp+68h+var_90]
.text:0026D232                 push    eax
.text:0026D233                 call    _XShaHmacComputeFinal@16 ; XShaHmacComputeFinal(x,x,x,x)
.text:0026D238                 xor     eax, eax
.text:0026D23A                 inc     eax
.text:0026D23B
.text:0026D23B loc_26D23B:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+E3j
.text:0026D23B                 pop     edi
.text:0026D23C                 pop     esi
.text:0026D23D                 pop     ebx
.text:0026D23E                 add     ebp, 68h
.text:0026D241                 leave
.text:0026D242                 retn    10h
.text:0026D245 ; ---------------------------------------------------------------------------
.text:0026D245
.text:0026D245 loc_26D245:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+99j
.text:0026D245                 push    eax
.text:0026D246                 jmp     short loc_26D24D
.text:0026D248 ; ---------------------------------------------------------------------------
.text:0026D248
.text:0026D248 loc_26D248:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+9Ej
.text:0026D248                 push    0C0000011h
.text:0026D24D
.text:0026D24D loc_26D24D:                             ; CODE XREF: XapiComputeContentHeaderSignature(x,x,x,x)+D5j
.text:0026D24D                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026D252                 xor     eax, eax
.text:0026D254                 jmp     short loc_26D23B
.text:0026D254 _XapiComputeContentHeaderSignature@16 endp
.text:0026D254
.text:0026D256
.text:0026D256 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D256
.text:0026D256 ; Attributes: library function bp-based frame
.text:0026D256
.text:0026D256 sub_26D256      proc near               ; CODE XREF: sub_269EEE+67p
.text:0026D256                                         ; sub_26D51A+12Ep ...
.text:0026D256
.text:0026D256 var_24          = dword ptr -24h
.text:0026D256 var_10          = dword ptr -10h
.text:0026D256 var_C           = dword ptr -0Ch
.text:0026D256 var_8           = dword ptr -8
.text:0026D256 var_4           = dword ptr -4
.text:0026D256 arg_0           = dword ptr  8
.text:0026D256 arg_4           = dword ptr  0Ch
.text:0026D256 arg_8           = dword ptr  10h
.text:0026D256 arg_C           = dword ptr  14h
.text:0026D256
.text:0026D256                 push    ebp
.text:0026D257                 mov     ebp, esp
.text:0026D259                 sub     esp, 24h
.text:0026D25C                 push    ebx
.text:0026D25D                 push    esi
.text:0026D25E                 mov     esi, [ebp+arg_C]
.text:0026D261                 push    edi
.text:0026D262                 mov     edi, ds:dword_485DFC
.text:0026D268                 lea     eax, [ebp+var_10]
.text:0026D26B                 push    eax
.text:0026D26C                 push    1Ch
.text:0026D26E                 push    esi
.text:0026D26F                 xor     ebx, ebx
.text:0026D271                 lea     eax, [ebp+var_8]
.text:0026D274                 push    eax
.text:0026D275                 push    ebx
.text:0026D276                 push    ebx
.text:0026D277                 push    ebx
.text:0026D278                 push    [ebp+arg_0]
.text:0026D27B                 mov     [ebp+var_10], ebx
.text:0026D27E                 mov     [ebp+var_C], ebx
.text:0026D281                 call    edi
.text:0026D283                 cmp     eax, ebx
.text:0026D285                 jl      short loc_26D2C4
.text:0026D287                 cmp     [ebp+var_4], 1Ch
.text:0026D28B                 jnz     short loc_26D2BF
.text:0026D28D                 mov     esi, [esi+18h]
.text:0026D290                 mov     eax, 88h
.text:0026D295                 cmp     esi, eax
.text:0026D297                 jbe     short loc_26D29B
.text:0026D299                 mov     esi, eax
.text:0026D29B
.text:0026D29B loc_26D29B:                             ; CODE XREF: sub_26D256+41j
.text:0026D29B                 push    ebx
.text:0026D29C                 lea     eax, [esi-1Ch]
.text:0026D29F                 push    eax
.text:0026D2A0                 mov     eax, [ebp+arg_C]
.text:0026D2A3                 add     eax, 1Ch
.text:0026D2A6                 push    eax
.text:0026D2A7                 lea     eax, [ebp+var_8]
.text:0026D2AA                 push    eax
.text:0026D2AB                 push    ebx
.text:0026D2AC                 push    ebx
.text:0026D2AD                 push    ebx
.text:0026D2AE                 push    [ebp+arg_0]
.text:0026D2B1                 call    edi
.text:0026D2B3                 cmp     eax, ebx
.text:0026D2B5                 jl      short loc_26D2C4
.text:0026D2B7                 lea     eax, [esi-1Ch]
.text:0026D2BA                 cmp     [ebp+var_4], eax
.text:0026D2BD                 jz      short loc_26D2CE
.text:0026D2BF
.text:0026D2BF loc_26D2BF:                             ; CODE XREF: sub_26D256+35j
.text:0026D2BF                 mov     eax, 0C0000010h
.text:0026D2C4
.text:0026D2C4 loc_26D2C4:                             ; CODE XREF: sub_26D256+2Fj
.text:0026D2C4                                         ; sub_26D256+5Fj
.text:0026D2C4                 push    eax
.text:0026D2C5                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026D2CA
.text:0026D2CA loc_26D2CA:                             ; CODE XREF: sub_26D256+8Bj
.text:0026D2CA                                         ; sub_26D256+C2j
.text:0026D2CA                 xor     eax, eax
.text:0026D2CC                 jmp     short loc_26D330
.text:0026D2CE ; ---------------------------------------------------------------------------
.text:0026D2CE
.text:0026D2CE loc_26D2CE:                             ; CODE XREF: sub_26D256+67j
.text:0026D2CE                 mov     edx, [ebp+arg_C]
.text:0026D2D1                 cmp     dword ptr [edx+14h], 46534358h
.text:0026D2D8                 jz      short loc_26D2E3
.text:0026D2DA                 push    0Dh             ; dwErrCode
.text:0026D2DC
.text:0026D2DC loc_26D2DC:                             ; CODE XREF: sub_26D256+D5j
.text:0026D2DC                 call    _SetLastError@4 ; SetLastError(x)
.text:0026D2E1                 jmp     short loc_26D2CA
.text:0026D2E3 ; ---------------------------------------------------------------------------
.text:0026D2E3
.text:0026D2E3 loc_26D2E3:                             ; CODE XREF: sub_26D256+82j
.text:0026D2E3                 mov     ecx, 88h
.text:0026D2E8                 cmp     esi, ecx
.text:0026D2EA                 jnb     short loc_26D301
.text:0026D2EC                 sub     ecx, esi
.text:0026D2EE                 lea     edi, [esi+edx]
.text:0026D2F1                 mov     esi, ecx
.text:0026D2F3                 shr     ecx, 2
.text:0026D2F6                 xor     eax, eax
.text:0026D2F8                 rep stosd
.text:0026D2FA                 mov     ecx, esi
.text:0026D2FC                 and     ecx, 3
.text:0026D2FF                 rep stosb
.text:0026D301
.text:0026D301 loc_26D301:                             ; CODE XREF: sub_26D256+94j
.text:0026D301                 cmp     [ebp+arg_8], ebx
.text:0026D304                 jz      short loc_26D32D
.text:0026D306                 lea     eax, [ebp+var_24]
.text:0026D309                 push    eax
.text:0026D30A                 push    edx
.text:0026D30B                 push    [ebp+arg_4]
.text:0026D30E                 push    [ebp+arg_0]
.text:0026D311                 call    _XapiComputeContentHeaderSignature@16 ; XapiComputeContentHeaderSignature(x,x,x,x)
.text:0026D316                 test    eax, eax
.text:0026D318                 jz      short loc_26D2CA
.text:0026D31A                 mov     edi, [ebp+arg_C]
.text:0026D31D                 push    5
.text:0026D31F                 pop     ecx
.text:0026D320                 lea     esi, [ebp+var_24]
.text:0026D323                 xor     eax, eax
.text:0026D325                 repe cmpsd
.text:0026D327                 jz      short loc_26D32D
.text:0026D329                 push    5
.text:0026D32B                 jmp     short loc_26D2DC
.text:0026D32D ; ---------------------------------------------------------------------------
.text:0026D32D
.text:0026D32D loc_26D32D:                             ; CODE XREF: sub_26D256+AEj
.text:0026D32D                                         ; sub_26D256+D1j
.text:0026D32D                 xor     eax, eax
.text:0026D32F                 inc     eax
.text:0026D330
.text:0026D330 loc_26D330:                             ; CODE XREF: sub_26D256+76j
.text:0026D330                 pop     edi
.text:0026D331                 pop     esi
.text:0026D332                 pop     ebx
.text:0026D333                 leave
.text:0026D334                 retn    10h
.text:0026D334 sub_26D256      endp
.text:0026D334
.text:0026D337
.text:0026D337 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D337
.text:0026D337 ; Attributes: bp-based frame fpd=6Ch
.text:0026D337
.text:0026D337 sub_26D337      proc near               ; CODE XREF: sub_26D7A6+A3p
.text:0026D337
.text:0026D337 var_88          = dword ptr -88h
.text:0026D337 var_14          = dword ptr -14h
.text:0026D337 var_C           = dword ptr -0Ch
.text:0026D337 arg_0           = dword ptr  8
.text:0026D337 arg_4           = dword ptr  0Ch
.text:0026D337 arg_8           = dword ptr  10h
.text:0026D337
.text:0026D337                 push    ebp
.text:0026D338                 lea     ebp, [esp-6Ch]
.text:0026D33C                 sub     esp, 88h
.text:0026D342                 mov     eax, [ebp+6Ch+arg_8]
.text:0026D345                 push    ebx
.text:0026D346                 mov     ebx, [eax+10h]
.text:0026D349                 push    esi
.text:0026D34A                 mov     esi, [ebp+6Ch+arg_4]
.text:0026D34D                 test    byte ptr [esi+23h], 80h
.text:0026D351                 jz      loc_26D3DA
.text:0026D357                 mov     ecx, [esi+6Ch]
.text:0026D35A                 test    ecx, ecx
.text:0026D35C                 jz      loc_26D3E6
.text:0026D362                 cmp     dword ptr [esi+70h], 70h
.text:0026D366                 jnz     short loc_26D3E6
.text:0026D368                 push    edi
.text:0026D369                 xor     eax, eax
.text:0026D36B                 lea     edi, [ebp+6Ch+var_14]
.text:0026D36E                 stosd
.text:0026D36F                 stosd
.text:0026D370                 stosd
.text:0026D371                 stosd
.text:0026D372                 stosd
.text:0026D373                 lea     eax, [ebp+6Ch+var_14]
.text:0026D376                 push    eax
.text:0026D377                 lea     eax, [ebp+6Ch+arg_4]
.text:0026D37A                 push    eax
.text:0026D37B                 push    70h
.text:0026D37D                 push    ebx
.text:0026D37E                 push    [ebp+6Ch+arg_0]
.text:0026D381                 mov     [ebp+6Ch+var_C], ecx
.text:0026D384                 call    sub_266EA1
.text:0026D389                 test    eax, eax
.text:0026D38B                 pop     edi
.text:0026D38C                 jz      short loc_26D3E6
.text:0026D38E                 cmp     [ebp+6Ch+arg_4], 70h
.text:0026D392                 jnz     short loc_26D3E6
.text:0026D394                 cmp     word ptr [ebx], 70h
.text:0026D398                 jnz     short loc_26D3E6
.text:0026D39A                 cmp     word ptr [ebx+2], 1
.text:0026D39F                 jnz     short loc_26D3E6
.text:0026D3A1                 lea     eax, [ebp+6Ch+var_88]
.text:0026D3A4                 push    eax
.text:0026D3A5                 call    sub_26F958
.text:0026D3AA                 mov     eax, [esi+18h]
.text:0026D3AD                 sub     eax, 24h
.text:0026D3B0                 push    eax
.text:0026D3B1                 add     esi, 24h
.text:0026D3B4                 push    esi
.text:0026D3B5                 lea     eax, [ebp+6Ch+var_88]
.text:0026D3B8                 push    eax
.text:0026D3B9                 call    sub_26F952
.text:0026D3BE                 push    0Ch
.text:0026D3C0                 push    ebx
.text:0026D3C1                 lea     eax, [ebp+6Ch+var_88]
.text:0026D3C4                 push    eax
.text:0026D3C5                 call    sub_26F952
.text:0026D3CA                 mov     eax, [ebp+6Ch+arg_8]
.text:0026D3CD                 add     eax, 14h
.text:0026D3D0                 push    eax
.text:0026D3D1                 lea     eax, [ebp+6Ch+var_88]
.text:0026D3D4                 push    eax
.text:0026D3D5                 call    sub_26F95E
.text:0026D3DA
.text:0026D3DA loc_26D3DA:                             ; CODE XREF: sub_26D337+1Aj
.text:0026D3DA                 xor     eax, eax
.text:0026D3DC                 inc     eax
.text:0026D3DD
.text:0026D3DD loc_26D3DD:                             ; CODE XREF: sub_26D337+BFj
.text:0026D3DD                 pop     esi
.text:0026D3DE                 pop     ebx
.text:0026D3DF                 add     ebp, 6Ch
.text:0026D3E2                 leave
.text:0026D3E3                 retn    0Ch
.text:0026D3E6 ; ---------------------------------------------------------------------------
.text:0026D3E6
.text:0026D3E6 loc_26D3E6:                             ; CODE XREF: sub_26D337+25j
.text:0026D3E6                                         ; sub_26D337+2Fj ...
.text:0026D3E6                 mov     eax, [ebp+6Ch+arg_8]
.text:0026D3E9                 and     dword ptr [eax+10h], 0
.text:0026D3ED                 push    0Dh             ; dwErrCode
.text:0026D3EF                 call    _SetLastError@4 ; SetLastError(x)
.text:0026D3F4                 xor     eax, eax
.text:0026D3F6                 jmp     short loc_26D3DD
.text:0026D3F6 sub_26D337      endp
.text:0026D3F6
.text:0026D3F8 ; [000000D0 BYTES: COLLAPSED FUNCTION XapipGetAlternateTitleID(). PRESS KEYPAD "+" TO EXPAND]
.text:0026D4C8
.text:0026D4C8 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D4C8
.text:0026D4C8 ; Attributes: library function
.text:0026D4C8
.text:0026D4C8 ; __stdcall XGetContentInstallLocationFromIDs(x,x,x,x)
.text:0026D4C8 _XGetContentInstallLocationFromIDs@16 proc near ; CODE XREF: sub_4586A4+1Fp
.text:0026D4C8
.text:0026D4C8 arg_0           = dword ptr  0Ch
.text:0026D4C8 arg_4           = dword ptr  10h
.text:0026D4C8 arg_8           = dword ptr  14h
.text:0026D4C8 arg_C           = dword ptr  18h
.text:0026D4C8
.text:0026D4C8                 push    ebx
.text:0026D4C9                 push    esi
.text:0026D4CA                 mov     esi, [esp+arg_0]
.text:0026D4CE                 test    esi, esi
.text:0026D4D0                 jz      short loc_26D4F4
.text:0026D4D2                 mov     eax, ds:10118h
.text:0026D4D7                 cmp     [eax+8], esi
.text:0026D4DA                 jz      short loc_26D4F4
.text:0026D4DC                 call    _XapipGetAlternateTitleID@0 ; XapipGetAlternateTitleID()
.text:0026D4E1                 cmp     eax, esi
.text:0026D4E3                 jnz     short loc_26D4E9
.text:0026D4E5                 mov     bl, 57h
.text:0026D4E7                 jmp     short loc_26D4F6
.text:0026D4E9 ; ---------------------------------------------------------------------------
.text:0026D4E9
.text:0026D4E9 loc_26D4E9:                             ; CODE XREF: XGetContentInstallLocationFromIDs(x,x,x,x)+1Bj
.text:0026D4E9                 push    5               ; dwErrCode
.text:0026D4EB                 call    _SetLastError@4 ; SetLastError(x)
.text:0026D4F0                 xor     eax, eax
.text:0026D4F2                 jmp     short loc_26D515
.text:0026D4F4 ; ---------------------------------------------------------------------------
.text:0026D4F4
.text:0026D4F4 loc_26D4F4:                             ; CODE XREF: XGetContentInstallLocationFromIDs(x,x,x,x)+8j
.text:0026D4F4                                         ; XGetContentInstallLocationFromIDs(x,x,x,x)+12j
.text:0026D4F4                 mov     bl, 54h
.text:0026D4F6
.text:0026D4F6 loc_26D4F6:                             ; CODE XREF: XGetContentInstallLocationFromIDs(x,x,x,x)+1Fj
.text:0026D4F6                 push    [esp+arg_4]
.text:0026D4FA                 mov     esi, [esp+4+arg_C]
.text:0026D4FE                 push    [esp+4+arg_8]
.text:0026D502                 push    offset dword_4CEA84 ; char *
.text:0026D507                 push    esi             ; char *
.text:0026D508                 call    _sprintf
.text:0026D50D                 xor     eax, eax
.text:0026D50F                 add     esp, 10h
.text:0026D512                 mov     [esi], bl
.text:0026D514                 inc     eax
.text:0026D515
.text:0026D515 loc_26D515:                             ; CODE XREF: XGetContentInstallLocationFromIDs(x,x,x,x)+2Aj
.text:0026D515                 pop     esi
.text:0026D516                 pop     ebx
.text:0026D517                 retn    10h
.text:0026D517 _XGetContentInstallLocationFromIDs@16 endp
.text:0026D517
.text:0026D51A
.text:0026D51A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D51A
.text:0026D51A ; Attributes: bp-based frame fpd=68h
.text:0026D51A
.text:0026D51A sub_26D51A      proc near               ; CODE XREF: XInstallContentSignaturesEx(x,x,x,x)+28p
.text:0026D51A                                         ; sub_447A6C+1EFp
.text:0026D51A
.text:0026D51A var_B4          = dword ptr -0B4h
.text:0026D51A var_9C          = dword ptr -9Ch
.text:0026D51A var_94          = dword ptr -94h
.text:0026D51A var_90          = dword ptr -90h
.text:0026D51A var_2C          = dword ptr -2Ch
.text:0026D51A var_24          = dword ptr -24h
.text:0026D51A var_20          = dword ptr -20h
.text:0026D51A var_1C          = dword ptr -1Ch
.text:0026D51A var_18          = dword ptr -18h
.text:0026D51A var_14          = dword ptr -14h
.text:0026D51A var_10          = dword ptr -10h
.text:0026D51A var_9           = byte ptr -9
.text:0026D51A lpSecurityAttributes= dword ptr -8
.text:0026D51A var_4           = dword ptr -4
.text:0026D51A arg_0           = dword ptr  8
.text:0026D51A lpFileName      = dword ptr  0Ch
.text:0026D51A arg_8           = dword ptr  10h
.text:0026D51A arg_C           = dword ptr  14h
.text:0026D51A
.text:0026D51A                 push    ebp
.text:0026D51B                 lea     ebp, [esp-68h]
.text:0026D51F                 sub     esp, 0B4h
.text:0026D525                 push    ebx
.text:0026D526                 push    esi
.text:0026D527                 xor     esi, esi
.text:0026D529                 push    edi
.text:0026D52A                 push    esi             ; hTemplateFile
.text:0026D52B                 push    esi             ; dwFlagsAndAttributes
.text:0026D52C                 or      edi, 0FFFFFFFFh
.text:0026D52F                 cmp     [ebp+68h+lpFileName], esi
.text:0026D532                 push    3               ; dwCreationDisposition
.text:0026D534                 mov     [ebp+68h+var_1C], esi
.text:0026D537                 mov     [ebp+68h+var_10], edi
.text:0026D53A                 mov     [ebp+68h+var_4], edi
.text:0026D53D                 mov     [ebp+68h+lpSecurityAttributes], esi
.text:0026D540                 mov     ebx, 4000h
.text:0026D545                 push    esi             ; lpSecurityAttributes
.text:0026D546                 jz      loc_26D61E
.text:0026D54C                 push    1               ; dwShareMode
.text:0026D54E                 push    80000000h       ; dwDesiredAccess
.text:0026D553                 push    [ebp+68h+lpFileName] ; lpFileName
.text:0026D556                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:0026D55B                 cmp     eax, edi
.text:0026D55D                 mov     [ebp+68h+var_10], eax
.text:0026D560                 jz      loc_26D725
.text:0026D566                 push    esi             ; lpFileSizeHigh
.text:0026D567                 push    eax             ; hFile
.text:0026D568                 call    _GetFileSize@8  ; GetFileSize(x,x)
.text:0026D56D                 cmp     eax, edi
.text:0026D56F                 mov     [ebp+68h+var_14], eax
.text:0026D572                 jz      loc_26D6DE
.text:0026D578                 push    esi             ; hTemplateFile
.text:0026D579                 push    esi             ; dwFlagsAndAttributes
.text:0026D57A                 push    2               ; dwCreationDisposition
.text:0026D57C                 push    esi             ; lpSecurityAttributes
.text:0026D57D                 push    esi             ; dwShareMode
.text:0026D57E                 push    0C0000000h      ; dwDesiredAccess
.text:0026D583                 push    [ebp+68h+arg_8] ; lpFileName
.text:0026D586                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:0026D58B                 cmp     eax, edi
.text:0026D58D                 mov     [ebp+68h+var_4], eax
.text:0026D590                 jz      loc_26D6DE
.text:0026D596                 push    4               ; hTemplateFile
.text:0026D598                 push    ebx             ; dwFlagsAndAttributes
.text:0026D599                 call    ds:dword_485EA0
.text:0026D59F                 cmp     eax, esi
.text:0026D5A1                 mov     [ebp+68h+lpSecurityAttributes], eax
.text:0026D5A4                 jnz     short loc_26D5B2
.text:0026D5A6                 push    8               ; dwErrCode
.text:0026D5A8                 call    _SetLastError@4 ; SetLastError(x)
.text:0026D5AD                 jmp     loc_26D6DE
.text:0026D5B2 ; ---------------------------------------------------------------------------
.text:0026D5B2
.text:0026D5B2 loc_26D5B2:                             ; CODE XREF: sub_26D51A+8Aj
.text:0026D5B2                 cmp     [ebp+68h+var_14], esi
.text:0026D5B5                 jz      short loc_26D604
.text:0026D5B7
.text:0026D5B7 loc_26D5B7:                             ; CODE XREF: sub_26D51A+E5j
.text:0026D5B7                 cmp     [ebp+68h+var_14], ebx
.text:0026D5BA                 mov     edi, ebx
.text:0026D5BC                 jnb     short loc_26D5C1
.text:0026D5BE                 mov     edi, [ebp+68h+var_14]
.text:0026D5C1
.text:0026D5C1 loc_26D5C1:                             ; CODE XREF: sub_26D51A+A2j
.text:0026D5C1                 push    esi
.text:0026D5C2                 lea     eax, [ebp+68h+var_18]
.text:0026D5C5                 push    eax
.text:0026D5C6                 push    edi
.text:0026D5C7                 push    [ebp+68h+lpSecurityAttributes]
.text:0026D5CA                 push    [ebp+68h+var_10]
.text:0026D5CD                 call    sub_266EA1
.text:0026D5D2                 test    eax, eax
.text:0026D5D4                 jz      loc_26D6DB
.text:0026D5DA                 cmp     [ebp+68h+var_18], edi
.text:0026D5DD                 jnz     loc_26D6DB
.text:0026D5E3                 push    esi
.text:0026D5E4                 lea     eax, [ebp+68h+var_18]
.text:0026D5E7                 push    eax
.text:0026D5E8                 push    edi
.text:0026D5E9                 push    [ebp+68h+lpSecurityAttributes]
.text:0026D5EC                 push    [ebp+68h+var_4]
.text:0026D5EF                 call    sub_266F8E
.text:0026D5F4                 test    eax, eax
.text:0026D5F6                 jz      loc_26D6DB
.text:0026D5FC                 sub     [ebp+68h+var_14], edi
.text:0026D5FF                 jnz     short loc_26D5B7
.text:0026D601                 or      edi, 0FFFFFFFFh
.text:0026D604
.text:0026D604 loc_26D604:                             ; CODE XREF: sub_26D51A+9Bj
.text:0026D604                 push    [ebp+68h+var_10]
.text:0026D607                 call    sub_267BC1
.text:0026D60C                 push    ebx             ; dwCreationDisposition
.text:0026D60D                 push    [ebp+68h+lpSecurityAttributes] ; lpSecurityAttributes
.text:0026D610                 mov     [ebp+68h+var_10], edi
.text:0026D613                 call    ds:dword_485E9C
.text:0026D619                 mov     [ebp+68h+lpSecurityAttributes], esi
.text:0026D61C                 jmp     short loc_26D637
.text:0026D61E ; ---------------------------------------------------------------------------
.text:0026D61E
.text:0026D61E loc_26D61E:                             ; CODE XREF: sub_26D51A+2Cj
.text:0026D61E                 push    esi             ; dwShareMode
.text:0026D61F                 push    0C0000000h      ; dwDesiredAccess
.text:0026D624                 push    [ebp+68h+arg_8] ; lpFileName
.text:0026D627                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:0026D62C                 cmp     eax, edi
.text:0026D62E                 mov     [ebp+68h+var_4], eax
.text:0026D631                 jz      loc_26D725
.text:0026D637
.text:0026D637 loc_26D637:                             ; CODE XREF: sub_26D51A+102j
.text:0026D637                 lea     eax, [ebp+68h+var_B4]
.text:0026D63A                 push    eax
.text:0026D63B                 mov     eax, [ebp+68h+arg_C]
.text:0026D63E                 not     eax
.text:0026D640                 and     eax, 1
.text:0026D643                 push    eax
.text:0026D644                 push    esi
.text:0026D645                 push    [ebp+68h+var_4]
.text:0026D648                 call    sub_26D256
.text:0026D64D                 test    eax, eax
.text:0026D64F                 jz      loc_26D6FA
.text:0026D655                 mov     eax, [ebp+68h+arg_0]
.text:0026D658                 cmp     eax, esi
.text:0026D65A                 jnz     short loc_26D664
.text:0026D65C                 mov     eax, ds:10118h
.text:0026D661                 mov     eax, [eax+8]
.text:0026D664
.text:0026D664 loc_26D664:                             ; CODE XREF: sub_26D51A+140j
.text:0026D664                 test    byte ptr [ebp+68h+arg_C], 2
.text:0026D668                 mov     [ebp+68h+var_90], eax
.text:0026D66B                 jz      short loc_26D673
.text:0026D66D                 or      [ebp+68h+var_94], 1
.text:0026D671                 jmp     short loc_26D677
.text:0026D673 ; ---------------------------------------------------------------------------
.text:0026D673
.text:0026D673 loc_26D673:                             ; CODE XREF: sub_26D51A+151j
.text:0026D673                 and     [ebp+68h+var_94], 0FFFFFFFEh
.text:0026D677
.text:0026D677 loc_26D677:                             ; CODE XREF: sub_26D51A+157j
.text:0026D677                 lea     eax, [ebp+68h+var_B4]
.text:0026D67A                 push    eax
.text:0026D67B                 push    eax
.text:0026D67C                 push    esi
.text:0026D67D                 push    [ebp+68h+var_4]
.text:0026D680                 call    _XapiComputeContentHeaderSignature@16 ; XapiComputeContentHeaderSignature(x,x,x,x)
.text:0026D685                 test    eax, eax
.text:0026D687                 jz      loc_26D728
.text:0026D68D                 mov     ecx, [ebp+68h+var_9C]
.text:0026D690                 mov     eax, 88h
.text:0026D695                 cmp     ecx, eax
.text:0026D697                 mov     [ebp+68h+var_24], esi
.text:0026D69A                 mov     [ebp+68h+var_20], esi
.text:0026D69D                 jbe     short loc_26D6A1
.text:0026D69F                 mov     ecx, eax
.text:0026D6A1
.text:0026D6A1 loc_26D6A1:                             ; CODE XREF: sub_26D51A+183j
.text:0026D6A1                 lea     eax, [ebp+68h+var_24]
.text:0026D6A4                 push    eax
.text:0026D6A5                 push    ecx
.text:0026D6A6                 lea     eax, [ebp+68h+var_B4]
.text:0026D6A9                 push    eax
.text:0026D6AA                 lea     eax, [ebp+68h+var_2C]
.text:0026D6AD                 push    eax
.text:0026D6AE                 push    esi
.text:0026D6AF                 push    esi
.text:0026D6B0                 push    esi
.text:0026D6B1                 push    [ebp+68h+var_4]
.text:0026D6B4                 call    ds:dword_485DF4
.text:0026D6BA                 cmp     eax, esi
.text:0026D6BC                 jge     short loc_26D6C6
.text:0026D6BE                 push    eax
.text:0026D6BF                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026D6C4                 jmp     short loc_26D6FA
.text:0026D6C6 ; ---------------------------------------------------------------------------
.text:0026D6C6
.text:0026D6C6 loc_26D6C6:                             ; CODE XREF: sub_26D51A+1A2j
.text:0026D6C6                 push    [ebp+68h+var_4]
.text:0026D6C9                 call    ds:dword_485DD4
.text:0026D6CF                 mov     [ebp+68h+var_4], edi
.text:0026D6D2                 mov     [ebp+68h+var_1C], 1
.text:0026D6D9                 jmp     short loc_26D6DE
.text:0026D6DB ; ---------------------------------------------------------------------------
.text:0026D6DB
.text:0026D6DB loc_26D6DB:                             ; CODE XREF: sub_26D51A+BAj
.text:0026D6DB                                         ; sub_26D51A+C3j ...
.text:0026D6DB                 or      edi, 0FFFFFFFFh
.text:0026D6DE
.text:0026D6DE loc_26D6DE:                             ; CODE XREF: sub_26D51A+58j
.text:0026D6DE                                         ; sub_26D51A+76j ...
.text:0026D6DE                 cmp     [ebp+68h+var_10], edi
.text:0026D6E1                 jz      short loc_26D6EB
.text:0026D6E3                 push    [ebp+68h+var_10]
.text:0026D6E6                 call    sub_267BC1
.text:0026D6EB
.text:0026D6EB loc_26D6EB:                             ; CODE XREF: sub_26D51A+1C7j
.text:0026D6EB                 cmp     [ebp+68h+lpSecurityAttributes], esi
.text:0026D6EE                 jz      short loc_26D6FA
.text:0026D6F0                 push    ebx
.text:0026D6F1                 push    [ebp+68h+lpSecurityAttributes]
.text:0026D6F4                 call    ds:dword_485E9C
.text:0026D6FA
.text:0026D6FA loc_26D6FA:                             ; CODE XREF: sub_26D51A+135j
.text:0026D6FA                                         ; sub_26D51A+1AAj ...
.text:0026D6FA                 cmp     [ebp+68h+var_4], edi
.text:0026D6FD                 jz      short loc_26D725
.text:0026D6FF                 cmp     [ebp+68h+lpFileName], esi
.text:0026D702                 jz      short loc_26D71D
.text:0026D704                 push    0Dh
.text:0026D706                 push    1
.text:0026D708                 lea     eax, [ebp+5Fh]
.text:0026D70B                 push    eax
.text:0026D70C                 lea     eax, [ebp+68h+var_2C]
.text:0026D70F                 push    eax
.text:0026D710                 push    [ebp+68h+var_4]
.text:0026D713                 mov     [ebp+68h+var_9], 1
.text:0026D717                 call    ds:dword_485DD8
.text:0026D71D
.text:0026D71D loc_26D71D:                             ; CODE XREF: sub_26D51A+1E8j
.text:0026D71D                 push    [ebp+68h+var_4]
.text:0026D720                 call    sub_267BC1
.text:0026D725
.text:0026D725 loc_26D725:                             ; CODE XREF: sub_26D51A+46j
.text:0026D725                                         ; sub_26D51A+117j ...
.text:0026D725                 mov     eax, [ebp+68h+var_1C]
.text:0026D728
.text:0026D728 loc_26D728:                             ; CODE XREF: sub_26D51A+16Dj
.text:0026D728                 pop     edi
.text:0026D729                 pop     esi
.text:0026D72A                 pop     ebx
.text:0026D72B                 add     ebp, 68h
.text:0026D72E                 leave
.text:0026D72F                 retn    10h
.text:0026D72F sub_26D51A      endp
.text:0026D72F
.text:0026D732 ; [00000031 BYTES: COLLAPSED FUNCTION XInstallContentSignaturesEx(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026D763
.text:0026D763 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D763
.text:0026D763 ; Attributes: bp-based frame
.text:0026D763
.text:0026D763 sub_26D763      proc near               ; CODE XREF: sub_457199+DBp
.text:0026D763
.text:0026D763 FileName        = byte ptr -104h
.text:0026D763 arg_0           = dword ptr  8
.text:0026D763
.text:0026D763                 push    ebp
.text:0026D764                 mov     ebp, esp
.text:0026D766                 sub     esp, 104h
.text:0026D76C                 lea     eax, [ebp+FileName]
.text:0026D772                 push    eax
.text:0026D773                 push    [ebp+arg_0]
.text:0026D776                 call    _XapiComputeContentMetadataFileName@8 ; XapiComputeContentMetadataFileName(x,x)
.text:0026D77B                 lea     eax, [ebp+FileName]
.text:0026D781                 push    eax             ; lpFileName
.text:0026D782                 call    _DeleteFileA@4  ; DeleteFileA(x)
.text:0026D787                 push    0FFFFFFFDh
.text:0026D789                 push    [ebp+arg_0]
.text:0026D78C                 call    _XapiNukeDirectory@8 ; XapiNukeDirectory(x,x)
.text:0026D791                 test    eax, eax
.text:0026D793                 jl      short loc_26D79A
.text:0026D795                 xor     eax, eax
.text:0026D797                 inc     eax
.text:0026D798                 jmp     short locret_26D7A2
.text:0026D79A ; ---------------------------------------------------------------------------
.text:0026D79A
.text:0026D79A loc_26D79A:                             ; CODE XREF: sub_26D763+30j
.text:0026D79A                 push    eax
.text:0026D79B                 call    _XapiSetLastNTError@4 ; XapiSetLastNTError(x)
.text:0026D7A0                 xor     eax, eax
.text:0026D7A2
.text:0026D7A2 locret_26D7A2:                          ; CODE XREF: sub_26D763+35j
.text:0026D7A2                 leave
.text:0026D7A3                 retn    4
.text:0026D7A3 sub_26D763      endp
.text:0026D7A3
.text:0026D7A6
.text:0026D7A6 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D7A6
.text:0026D7A6 ; Attributes: bp-based frame fpd=70h
.text:0026D7A6
.text:0026D7A6 sub_26D7A6      proc near               ; CODE XREF: XLoadContentSignaturesEx(x,x)+22p
.text:0026D7A6
.text:0026D7A6 var_124         = dword ptr -124h
.text:0026D7A6 var_B0          = dword ptr -0B0h
.text:0026D7A6 var_90          = byte ptr -90h
.text:0026D7A6 var_60          = dword ptr -60h
.text:0026D7A6 var_5C          = dword ptr -5Ch
.text:0026D7A6 var_58          = dword ptr -58h
.text:0026D7A6 var_28          = dword ptr -28h
.text:0026D7A6 var_14          = dword ptr -14h
.text:0026D7A6 var_C           = dword ptr -0Ch
.text:0026D7A6 arg_0           = dword ptr  8
.text:0026D7A6 lpFileName      = dword ptr  0Ch
.text:0026D7A6
.text:0026D7A6                 push    ebp
.text:0026D7A7                 lea     ebp, [esp-70h]
.text:0026D7AB                 sub     esp, 124h
.text:0026D7B1                 push    ebx
.text:0026D7B2                 push    esi
.text:0026D7B3                 push    edi
.text:0026D7B4                 xor     edi, edi
.text:0026D7B6                 push    edi             ; hTemplateFile
.text:0026D7B7                 push    edi             ; dwFlagsAndAttributes
.text:0026D7B8                 push    3               ; dwCreationDisposition
.text:0026D7BA                 push    edi             ; lpSecurityAttributes
.text:0026D7BB                 push    1               ; dwShareMode
.text:0026D7BD                 push    80000000h       ; dwDesiredAccess
.text:0026D7C2                 push    [ebp+70h+lpFileName] ; lpFileName
.text:0026D7C5                 xor     ebx, ebx
.text:0026D7C7                 call    _CreateFileA@28 ; CreateFileA(x,x,x,x,x,x,x)
.text:0026D7CC                 mov     esi, eax
.text:0026D7CE                 cmp     esi, 0FFFFFFFFh
.text:0026D7D1                 jz      loc_26D902
.text:0026D7D7                 mov     eax, [ebp+70h+arg_0]
.text:0026D7DA                 cmp     eax, edi
.text:0026D7DC                 jnz     short loc_26D7E6
.text:0026D7DE                 mov     eax, ds:10118h
.text:0026D7E3                 mov     eax, [eax+8]
.text:0026D7E6
.text:0026D7E6 loc_26D7E6:                             ; CODE XREF: sub_26D7A6+36j
.text:0026D7E6                 lea     ecx, [ebp+70h+var_B0]
.text:0026D7E9                 push    ecx
.text:0026D7EA                 push    1
.text:0026D7EC                 push    eax
.text:0026D7ED                 push    esi
.text:0026D7EE                 call    sub_26D256
.text:0026D7F3                 test    eax, eax
.text:0026D7F5                 jz      loc_26D8ED
.text:0026D7FB                 test    [ebp+70h+var_90], 1
.text:0026D7FF                 jz      loc_26D8E6
.text:0026D805                 mov     eax, [ebp+70h+var_5C]
.text:0026D808                 cmp     eax, edi
.text:0026D80A                 jz      loc_26D8E6
.text:0026D810                 push    24830000h
.text:0026D815                 add     eax, 98h
.text:0026D81A                 push    eax
.text:0026D81B                 call    sub_64B60
.text:0026D820                 mov     ebx, eax
.text:0026D822                 cmp     ebx, edi
.text:0026D824                 jnz     short loc_26D82D
.text:0026D826                 push    8
.text:0026D828                 jmp     loc_26D8E8
.text:0026D82D ; ---------------------------------------------------------------------------
.text:0026D82D
.text:0026D82D loc_26D82D:                             ; CODE XREF: sub_26D7A6+7Ej
.text:0026D82D                 xor     eax, eax
.text:0026D82F                 lea     edi, [ebx+28h]
.text:0026D832                 mov     [ebx+10h], edi
.text:0026D835                 stosd
.text:0026D836                 lea     edi, [ebx+14h]
.text:0026D839                 stosd
.text:0026D83A                 mov     eax, [ebx+10h]
.text:0026D83D                 add     eax, 70h
.text:0026D840                 mov     [ebx+0Ch], eax
.text:0026D843                 push    ebx
.text:0026D844                 lea     eax, [ebp+70h+var_B0]
.text:0026D847                 push    eax
.text:0026D848                 push    esi
.text:0026D849                 call    sub_26D337
.text:0026D84E                 test    eax, eax
.text:0026D850                 jz      loc_26D8ED
.text:0026D856                 xor     eax, eax
.text:0026D858                 lea     edi, [ebp+70h+var_14]
.text:0026D85B                 stosd
.text:0026D85C                 stosd
.text:0026D85D                 stosd
.text:0026D85E                 stosd
.text:0026D85F                 stosd
.text:0026D860                 mov     eax, [ebp+70h+var_60]
.text:0026D863                 mov     [ebp+70h+var_C], eax
.text:0026D866                 lea     eax, [ebp+70h+var_14]
.text:0026D869                 push    eax
.text:0026D86A                 lea     eax, [ebp+70h+lpFileName]
.text:0026D86D                 push    eax
.text:0026D86E                 push    [ebp+70h+var_5C]
.text:0026D871                 push    dword ptr [ebx+0Ch]
.text:0026D874                 push    esi
.text:0026D875                 call    sub_266EA1
.text:0026D87A                 test    eax, eax
.text:0026D87C                 jz      short loc_26D8ED
.text:0026D87E                 mov     eax, [ebp+70h+var_5C]
.text:0026D881                 cmp     eax, [ebp+70h+lpFileName]
.text:0026D884                 jnz     short loc_26D8ED
.text:0026D886                 mov     eax, [ebx+0Ch]
.text:0026D889                 mov     ecx, [eax+8]
.text:0026D88C                 add     ecx, eax
.text:0026D88E                 mov     [ebx+4], ecx
.text:0026D891                 mov     ecx, [eax+8]
.text:0026D894                 add     ecx, eax
.text:0026D896                 push    esi
.text:0026D897                 mov     [ebx+8], ecx
.text:0026D89A                 call    sub_267BC1
.text:0026D89F                 lea     eax, [ebp+70h+var_124]
.text:0026D8A5                 push    eax
.text:0026D8A6                 call    sub_26F958
.text:0026D8AB                 push    [ebp+70h+var_5C]
.text:0026D8AE                 lea     eax, [ebp+70h+var_124]
.text:0026D8B4                 push    dword ptr [ebx+0Ch]
.text:0026D8B7                 push    eax
.text:0026D8B8                 call    sub_26F952
.text:0026D8BD                 lea     eax, [ebp+70h+var_28]
.text:0026D8C0                 push    eax
.text:0026D8C1                 lea     eax, [ebp+70h+var_124]
.text:0026D8C7                 push    eax
.text:0026D8C8                 call    sub_26F95E
.text:0026D8CD                 push    5
.text:0026D8CF                 pop     ecx
.text:0026D8D0                 lea     edi, [ebp+70h+var_58]
.text:0026D8D3                 lea     esi, [ebp+70h+var_28]
.text:0026D8D6                 xor     eax, eax
.text:0026D8D8                 repe cmpsd
.text:0026D8DA                 jnz     short loc_26D8F3
.text:0026D8DC                 mov     dword ptr [ebx], 66736378h
.text:0026D8E2                 mov     eax, ebx
.text:0026D8E4                 jmp     short loc_26D904
.text:0026D8E6 ; ---------------------------------------------------------------------------
.text:0026D8E6
.text:0026D8E6 loc_26D8E6:                             ; CODE XREF: sub_26D7A6+59j
.text:0026D8E6                                         ; sub_26D7A6+64j
.text:0026D8E6                 push    2               ; dwErrCode
.text:0026D8E8
.text:0026D8E8 loc_26D8E8:                             ; CODE XREF: sub_26D7A6+82j
.text:0026D8E8                 call    _SetLastError@4 ; SetLastError(x)
.text:0026D8ED
.text:0026D8ED loc_26D8ED:                             ; CODE XREF: sub_26D7A6+4Fj
.text:0026D8ED                                         ; sub_26D7A6+AAj ...
.text:0026D8ED                 push    esi
.text:0026D8EE                 call    sub_267BC1
.text:0026D8F3
.text:0026D8F3 loc_26D8F3:                             ; CODE XREF: sub_26D7A6+134j
.text:0026D8F3                 test    ebx, ebx
.text:0026D8F5                 jz      short loc_26D902
.text:0026D8F7                 push    24830000h
.text:0026D8FC                 push    ebx
.text:0026D8FD                 call    sub_645B0
.text:0026D902
.text:0026D902 loc_26D902:                             ; CODE XREF: sub_26D7A6+2Bj
.text:0026D902                                         ; sub_26D7A6+14Fj
.text:0026D902                 xor     eax, eax
.text:0026D904
.text:0026D904 loc_26D904:                             ; CODE XREF: sub_26D7A6+13Ej
.text:0026D904                 pop     edi
.text:0026D905                 pop     esi
.text:0026D906                 pop     ebx
.text:0026D907                 add     ebp, 70h
.text:0026D90A                 leave
.text:0026D90B                 retn    8
.text:0026D90B sub_26D7A6      endp
.text:0026D90B
.text:0026D90E
.text:0026D90E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D90E
.text:0026D90E ; Attributes: library function bp-based frame
.text:0026D90E
.text:0026D90E ; __stdcall XLoadContentSignaturesEx(x,x)
.text:0026D90E _XLoadContentSignaturesEx@8 proc near   ; CODE XREF: sub_447F30+57p
.text:0026D90E                                         ; sub_457837+63p
.text:0026D90E
.text:0026D90E var_104         = dword ptr -104h
.text:0026D90E arg_0           = dword ptr  8
.text:0026D90E arg_4           = dword ptr  0Ch
.text:0026D90E
.text:0026D90E                 push    ebp
.text:0026D90F                 mov     ebp, esp
.text:0026D911                 sub     esp, 104h
.text:0026D917                 lea     eax, [ebp+var_104]
.text:0026D91D                 push    eax
.text:0026D91E                 push    [ebp+arg_4]
.text:0026D921                 call    _XapiComputeContentMetadataFileName@8 ; XapiComputeContentMetadataFileName(x,x)
.text:0026D926                 lea     eax, [ebp+var_104]
.text:0026D92C                 push    eax
.text:0026D92D                 push    [ebp+arg_0]
.text:0026D930                 call    sub_26D7A6
.text:0026D935                 leave
.text:0026D936                 retn    8
.text:0026D936 _XLoadContentSignaturesEx@8 endp
.text:0026D936
.text:0026D939
.text:0026D939 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D939
.text:0026D939
.text:0026D939 sub_26D939      proc near               ; CODE XREF: sub_447F30+86p
.text:0026D939                                         ; sub_457837+6Dp
.text:0026D939
.text:0026D939 arg_0           = dword ptr  4
.text:0026D939
.text:0026D939                 mov     eax, [esp+arg_0]
.text:0026D93D                 and     dword ptr [eax], 0
.text:0026D940                 push    24830000h
.text:0026D945                 push    eax
.text:0026D946                 call    sub_645B0
.text:0026D94B                 retn    4
.text:0026D94B sub_26D939      endp
.text:0026D94B
.text:0026D94B ; ---------------------------------------------------------------------------
.text:0026D94E                 align 10h
.text:0026D950
.text:0026D950 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D950
.text:0026D950
.text:0026D950 sub_26D950      proc near               ; CODE XREF: sub_26A8F2-12p
.text:0026D950                                         ; .text:0026D0FFp
.text:0026D950
.text:0026D950 arg_0           = qword ptr  4
.text:0026D950
.text:0026D950                 mov     ecx, dword ptr [esp+arg_0]
.text:0026D954                 mov     edx, dword ptr [esp+arg_0+4]
.text:0026D958                 sgdt    [esp+arg_0+2]
.text:0026D95D                 mov     eax, dword ptr [esp+arg_0+4]
.text:0026D961                 cli
.text:0026D962                 xchg    ecx, [eax+8]
.text:0026D965                 xchg    edx, [eax+0Ch]
.text:0026D968                 sti
.text:0026D969                 jmp     far ptr loc_26D970
.text:0026D970
.text:0026D970 loc_26D970:
.text:0026D970                 mov     eax, ecx
.text:0026D972                 retn    8
.text:0026D972 sub_26D950      endp
.text:0026D972
.text:0026D975 ; [0000002D BYTES: COLLAPSED FUNCTION unknown_libname_45. PRESS KEYPAD "+" TO EXPAND]
.text:0026D9A2 ; [00000027 BYTES: COLLAPSED FUNCTION unknown_libname_46. PRESS KEYPAD "+" TO EXPAND]
.text:0026D9C9
.text:0026D9C9 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D9C9
.text:0026D9C9
.text:0026D9C9 sub_26D9C9      proc near               ; CODE XREF: XGVec2Normalize(x,x)+Ap
.text:0026D9C9
.text:0026D9C9 var_4           = dword ptr -4
.text:0026D9C9 arg_0           = dword ptr  4
.text:0026D9C9
.text:0026D9C9                 push    ecx
.text:0026D9CA                 mov     edx, [esp+4+arg_0]
.text:0026D9CE                 movups  xmm1, oword ptr [edx]
.text:0026D9D1                 movaps  xmm2, xmm1
.text:0026D9D4                 mulps   xmm1, xmm2
.text:0026D9D7                 movaps  xmm0, xmm1
.text:0026D9DA                 shufps  xmm0, xmm0, 1
.text:0026D9DE                 addps   xmm1, xmm0
.text:0026D9E1                 movss   [esp+4+var_4], xmm1
.text:0026D9E6                 fld     [esp+4+var_4]
.text:0026D9E9                 pop     ecx
.text:0026D9EA                 retn    4
.text:0026D9EA sub_26D9C9      endp
.text:0026D9EA
.text:0026D9ED
.text:0026D9ED ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026D9ED
.text:0026D9ED
.text:0026D9ED sub_26D9ED      proc near               ; CODE XREF: XGVec3Normalize(x,x)+Cp
.text:0026D9ED
.text:0026D9ED var_4           = dword ptr -4
.text:0026D9ED arg_0           = dword ptr  4
.text:0026D9ED
.text:0026D9ED                 push    ecx
.text:0026D9EE                 mov     edx, [esp+4+arg_0]
.text:0026D9F2                 movss   xmm1, dword ptr [edx]
.text:0026D9F6                 movhps  xmm1, qword ptr [edx+4]
.text:0026D9FA                 movaps  xmm2, xmm1
.text:0026D9FD                 mulps   xmm1, xmm2
.text:0026DA00                 movaps  xmm0, xmm1
.text:0026DA03                 shufps  xmm0, xmm0, 32h
.text:0026DA07                 addps   xmm1, xmm0
.text:0026DA0A                 shufps  xmm0, xmm0, 32h
.text:0026DA0E                 addps   xmm1, xmm0
.text:0026DA11                 movss   [esp+4+var_4], xmm1
.text:0026DA16                 fld     [esp+4+var_4]
.text:0026DA19                 pop     ecx
.text:0026DA1A                 retn    4
.text:0026DA1A sub_26D9ED      endp
.text:0026DA1A
.text:0026DA1D ; [0000001F BYTES: COLLAPSED FUNCTION XGPlaneDotNormal(XGPLANE const *,XGVECTOR3 const *). PRESS KEYPAD "+" TO EXPAND]
.text:0026DA3C ; [0000004E BYTES: COLLAPSED FUNCTION XGVec3Cross(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *). PRESS KEYPAD "+" TO EXPAND]
.text:0026DA8A ; [0000002A BYTES: COLLAPSED FUNCTION XGVec3Subtract(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *). PRESS KEYPAD "+" TO EXPAND]
.text:0026DAB4 ; [0000003A BYTES: COLLAPSED FUNCTION XGVec3Lerp(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *,float). PRESS KEYPAD "+" TO EXPAND]
.text:0026DAEE
.text:0026DAEE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026DAEE
.text:0026DAEE
.text:0026DAEE sub_26DAEE      proc near               ; CODE XREF: sub_26DE65+Cp
.text:0026DAEE                                         ; XGQuaternionToAxisAngle(x,x,x)+9p ...
.text:0026DAEE
.text:0026DAEE var_4           = dword ptr -4
.text:0026DAEE arg_0           = dword ptr  4
.text:0026DAEE
.text:0026DAEE                 push    ecx
.text:0026DAEF                 mov     edx, [esp+4+arg_0]
.text:0026DAF3                 movups  xmm1, oword ptr [edx]
.text:0026DAF6                 movaps  xmm2, xmm1
.text:0026DAF9                 mulps   xmm1, xmm2
.text:0026DAFC                 movaps  xmm0, xmm1
.text:0026DAFF                 shufps  xmm0, xmm0, 93h
.text:0026DB03                 addps   xmm1, xmm0
.text:0026DB06                 shufps  xmm0, xmm0, 93h
.text:0026DB0A                 addps   xmm1, xmm0
.text:0026DB0D                 shufps  xmm0, xmm0, 93h
.text:0026DB11                 addps   xmm1, xmm0
.text:0026DB14                 movss   [esp+4+var_4], xmm1
.text:0026DB19                 fld     [esp+4+var_4]
.text:0026DB1C                 pop     ecx
.text:0026DB1D                 retn    4
.text:0026DB1D sub_26DAEE      endp
.text:0026DB1D
.text:0026DB20
.text:0026DB20 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026DB20
.text:0026DB20
.text:0026DB20 sub_26DB20      proc near               ; CODE XREF: XGQuaternionSlerp(x,x,x,x)+13p
.text:0026DB20
.text:0026DB20 var_4           = dword ptr -4
.text:0026DB20 arg_0           = dword ptr  4
.text:0026DB20 arg_4           = dword ptr  8
.text:0026DB20
.text:0026DB20                 push    ecx
.text:0026DB21                 mov     edx, [esp+4+arg_0]
.text:0026DB25                 movups  xmm1, oword ptr [edx]
.text:0026DB28                 mov     ecx, [esp+4+arg_4]
.text:0026DB2C                 movups  xmm2, oword ptr [ecx]
.text:0026DB2F                 mulps   xmm1, xmm2
.text:0026DB32                 movaps  xmm0, xmm1
.text:0026DB35                 shufps  xmm0, xmm0, 93h
.text:0026DB39                 addps   xmm1, xmm0
.text:0026DB3C                 shufps  xmm0, xmm0, 93h
.text:0026DB40                 addps   xmm1, xmm0
.text:0026DB43                 shufps  xmm0, xmm0, 93h
.text:0026DB47                 addps   xmm1, xmm0
.text:0026DB4A                 movss   [esp+4+var_4], xmm1
.text:0026DB4F                 fld     [esp+4+var_4]
.text:0026DB52                 pop     ecx
.text:0026DB53                 retn    8
.text:0026DB53 sub_26DB20      endp
.text:0026DB53
.text:0026DB56 ; [00000027 BYTES: COLLAPSED FUNCTION XGQuaternionConjugate(XGQUATERNION *,XGQUATERNION const *). PRESS KEYPAD "+" TO EXPAND]
.text:0026DB7D ; [00000022 BYTES: COLLAPSED FUNCTION XGPlaneDotCoord(XGPLANE const *,XGVECTOR3 const *). PRESS KEYPAD "+" TO EXPAND]
.text:0026DB9F ; [00000030 BYTES: COLLAPSED FUNCTION XGRAPHICS::WithinEpsilon(float,float). PRESS KEYPAD "+" TO EXPAND]
.text:0026DBCF ; [0000007F BYTES: COLLAPSED FUNCTION XGVec2Normalize(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DC4E ; [00000031 BYTES: COLLAPSED FUNCTION XGVec2Transform(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DC7F ; [00000067 BYTES: COLLAPSED FUNCTION XGVec2TransformCoord(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DCE6 ; [0000007B BYTES: COLLAPSED FUNCTION XGVec3Normalize(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DD61 ; [00000041 BYTES: COLLAPSED FUNCTION unknown_libname_47. PRESS KEYPAD "+" TO EXPAND]
.text:0026DDA2 ; [0000007E BYTES: COLLAPSED FUNCTION XGVec3TransformCoord(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DE20 ; [00000045 BYTES: COLLAPSED FUNCTION XGVec3TransformNormal(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DE65
.text:0026DE65 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026DE65
.text:0026DE65 ; Attributes: bp-based frame
.text:0026DE65
.text:0026DE65 sub_26DE65      proc near               ; CODE XREF: sub_277480+A3p
.text:0026DE65
.text:0026DE65 var_20          = dword ptr -20h
.text:0026DE65 var_1C          = dword ptr -1Ch
.text:0026DE65 var_10          = dword ptr -10h
.text:0026DE65 arg_0           = dword ptr  8
.text:0026DE65 arg_4           = dword ptr  0Ch
.text:0026DE65
.text:0026DE65                 push    ebp
.text:0026DE66                 mov     ebp, esp
.text:0026DE68                 sub     esp, 10h
.text:0026DE6B                 push    esi
.text:0026DE6C                 mov     esi, [ebp+arg_4]
.text:0026DE6F                 push    edi
.text:0026DE70                 push    esi
.text:0026DE71                 call    sub_26DAEE
.text:0026DE76                 fstp    [ebp+arg_4]
.text:0026DE79                 push    ecx
.text:0026DE7A                 fld1
.text:0026DE7C                 push    ecx
.text:0026DE7D                 fstp    [esp+20h+var_1C]
.text:0026DE81                 fld     [ebp+arg_4]
.text:0026DE84                 fstp    [esp+20h+var_20]
.text:0026DE87                 call    ?WithinEpsilon@XGRAPHICS@@YGHMM@Z ; XGRAPHICS::WithinEpsilon(float,float)
.text:0026DE8C                 test    eax, eax
.text:0026DE8E                 jz      short loc_26DE9F
.text:0026DE90                 mov     eax, [ebp+arg_0]
.text:0026DE93                 cmp     eax, esi
.text:0026DE95                 jz      short loc_26DEE0
.text:0026DE97
.text:0026DE97 loc_26DE97:                             ; CODE XREF: sub_26DE65+63j
.text:0026DE97                 mov     edi, eax
.text:0026DE99                 movsd
.text:0026DE9A                 movsd
.text:0026DE9B                 movsd
.text:0026DE9C                 movsd
.text:0026DE9D                 jmp     short loc_26DEE0
.text:0026DE9F ; ---------------------------------------------------------------------------
.text:0026DE9F
.text:0026DE9F loc_26DE9F:                             ; CODE XREF: sub_26DE65+29j
.text:0026DE9F                 fld     [ebp+arg_4]
.text:0026DEA2                 fcomp   ds:flt_4CEAD0
.text:0026DEA8                 fnstsw  ax
.text:0026DEAA                 test    ah, 41h
.text:0026DEAD                 jnz     short loc_26DECA
.text:0026DEAF                 fld     [ebp+arg_4]
.text:0026DEB2                 push    ecx
.text:0026DEB3                 fsqrt
.text:0026DEB5                 lea     eax, [ebp+var_10]
.text:0026DEB8                 mov     ecx, esi
.text:0026DEBA                 fstp    [esp+1Ch+var_1C]
.text:0026DEBD                 push    eax
.text:0026DEBE                 call    unknown_libname_45 ; XBOX Flirt v2.00 Final.
.text:0026DEC3                 mov     esi, eax
.text:0026DEC5                 mov     eax, [ebp+arg_0]
.text:0026DEC8                 jmp     short loc_26DE97
.text:0026DECA ; ---------------------------------------------------------------------------
.text:0026DECA
.text:0026DECA loc_26DECA:                             ; CODE XREF: sub_26DE65+48j
.text:0026DECA                 mov     eax, [ebp+arg_0]
.text:0026DECD                 fldz
.text:0026DECF                 fstp    dword ptr [eax]
.text:0026DED1                 fldz
.text:0026DED3                 fstp    dword ptr [eax+4]
.text:0026DED6                 fldz
.text:0026DED8                 fstp    dword ptr [eax+8]
.text:0026DEDB                 fldz
.text:0026DEDD                 fstp    dword ptr [eax+0Ch]
.text:0026DEE0
.text:0026DEE0 loc_26DEE0:                             ; CODE XREF: sub_26DE65+30j
.text:0026DEE0                                         ; sub_26DE65+38j
.text:0026DEE0                 pop     edi
.text:0026DEE1                 pop     esi
.text:0026DEE2                 leave
.text:0026DEE3                 retn    8
.text:0026DEE3 sub_26DE65      endp
.text:0026DEE3
.text:0026DEE6 ; [00000046 BYTES: COLLAPSED FUNCTION XGVec4Transform(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026DF2C ; [000000FE BYTES: COLLAPSED FUNCTION XGMatrixMultiply(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026E02A ; [0000004B BYTES: COLLAPSED FUNCTION XGMatrixTranspose(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026E075 ; [0000038D BYTES: COLLAPSED FUNCTION unknown_libname_48. PRESS KEYPAD "+" TO EXPAND]
.text:0026E402 ; [0000005C BYTES: COLLAPSED FUNCTION unknown_libname_49. PRESS KEYPAD "+" TO EXPAND]
.text:0026E45E ; [0000005C BYTES: COLLAPSED FUNCTION unknown_libname_50. PRESS KEYPAD "+" TO EXPAND]
.text:0026E4BA ; [0000007A BYTES: COLLAPSED FUNCTION unknown_libname_51. PRESS KEYPAD "+" TO EXPAND]
.text:0026E534 ; [0000007B BYTES: COLLAPSED FUNCTION unknown_libname_52. PRESS KEYPAD "+" TO EXPAND]
.text:0026E5AF ; [0000007C BYTES: COLLAPSED FUNCTION unknown_libname_53. PRESS KEYPAD "+" TO EXPAND]
.text:0026E62B
.text:0026E62B ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026E62B
.text:0026E62B ; Attributes: bp-based frame
.text:0026E62B
.text:0026E62B sub_26E62B      proc near               ; CODE XREF: sub_1F3110+3FDp
.text:0026E62B                                         ; sub_1F7C70+2EAp ...
.text:0026E62B
.text:0026E62B var_1C          = dword ptr -1Ch
.text:0026E62B var_18          = dword ptr -18h
.text:0026E62B var_14          = dword ptr -14h
.text:0026E62B var_10          = dword ptr -10h
.text:0026E62B var_C           = dword ptr -0Ch
.text:0026E62B var_8           = dword ptr -8
.text:0026E62B var_4           = dword ptr -4
.text:0026E62B arg_0           = dword ptr  8
.text:0026E62B arg_4           = dword ptr  0Ch
.text:0026E62B arg_8           = dword ptr  10h
.text:0026E62B
.text:0026E62B                 push    ebp
.text:0026E62C                 mov     ebp, esp
.text:0026E62E                 sub     esp, 1Ch
.text:0026E631                 lea     eax, [ebp+var_4]
.text:0026E634                 mov     [ebp+var_C], eax
.text:0026E637                 push    esi
.text:0026E638                 lea     eax, [ebp+var_8]
.text:0026E63B                 push    edi
.text:0026E63C                 mov     [ebp+var_10], eax
.text:0026E63F                 mov     eax, [ebp+var_10]
.text:0026E642                 mov     edx, [ebp+var_C]
.text:0026E645                 fld     [ebp+arg_8]
.text:0026E648                 fsincos
.text:0026E64A                 fstp    dword ptr [edx]
.text:0026E64C                 fstp    dword ptr [eax]
.text:0026E64E                 fld1
.text:0026E650                 mov     esi, [ebp+arg_4]
.text:0026E653                 fsub    [ebp+var_4]
.text:0026E656                 lea     edi, [ebp+var_1C]
.text:0026E659                 movsd
.text:0026E65A                 lea     eax, [ebp+var_1C]
.text:0026E65D                 fstp    [ebp+arg_8]
.text:0026E660                 movsd
.text:0026E661                 push    eax
.text:0026E662                 push    eax
.text:0026E663                 movsd
.text:0026E664                 call    _XGVec3Normalize@8 ; XGVec3Normalize(x,x)
.text:0026E669                 mov     eax, [ebp+arg_0]
.text:0026E66C                 fld     [ebp+arg_8]
.text:0026E66F                 fld     [ebp+var_18]
.text:0026E672                 fmul    [ebp+var_1C]
.text:0026E675                 fmul    st, st(1)
.text:0026E677                 fstp    [ebp+arg_8]
.text:0026E67A                 fld     [ebp+var_14]
.text:0026E67D                 fld     [ebp+var_18]
.text:0026E680                 fmul    st, st(1)
.text:0026E682                 fmul    st, st(2)
.text:0026E684                 fld     st(1)
.text:0026E686                 fmul    [ebp+var_1C]
.text:0026E689                 fmul    st, st(3)
.text:0026E68B                 fld     [ebp+var_1C]
.text:0026E68E                 fmul    [ebp+var_1C]
.text:0026E691                 fmul    st, st(4)
.text:0026E693                 fadd    [ebp+var_4]
.text:0026E696                 fstp    dword ptr [eax]
.text:0026E698                 fld     st(2)
.text:0026E69A                 fmul    [ebp+var_8]
.text:0026E69D                 fld     [ebp+arg_8]
.text:0026E6A0                 fadd    st, st(1)
.text:0026E6A2                 fstp    dword ptr [eax+4]
.text:0026E6A5                 fld     [ebp+var_18]
.text:0026E6A8                 fmul    [ebp+var_8]
.text:0026E6AB                 fst     [ebp+arg_4]
.text:0026E6AE                 fld     st(2)
.text:0026E6B0                 fsub    st, st(1)
.text:0026E6B2                 fstp    dword ptr [eax+8]
.text:0026E6B5                 fstp    st
.text:0026E6B7                 fldz
.text:0026E6B9                 fstp    dword ptr [eax+0Ch]
.text:0026E6BC                 fld     [ebp+arg_8]
.text:0026E6BF                 fsub    st, st(1)
.text:0026E6C1                 fstp    dword ptr [eax+10h]
.text:0026E6C4                 fstp    st
.text:0026E6C6                 fld     [ebp+var_18]
.text:0026E6C9                 fmul    [ebp+var_18]
.text:0026E6CC                 fmul    st, st(4)
.text:0026E6CE                 fadd    [ebp+var_4]
.text:0026E6D1                 fstp    dword ptr [eax+14h]
.text:0026E6D4                 fld     [ebp+var_1C]
.text:0026E6D7                 fmul    [ebp+var_8]
.text:0026E6DA                 fld     st
.text:0026E6DC                 fadd    st, st(3)
.text:0026E6DE                 fstp    dword ptr [eax+18h]
.text:0026E6E1                 fldz
.text:0026E6E3                 fstp    dword ptr [eax+1Ch]
.text:0026E6E6                 fld     [ebp+arg_4]
.text:0026E6E9                 fadd    st, st(2)
.text:0026E6EB                 fstp    dword ptr [eax+20h]
.text:0026E6EE                 fld     st(2)
.text:0026E6F0                 fsub    st, st(1)
.text:0026E6F2                 fstp    dword ptr [eax+24h]
.text:0026E6F5                 fstp    st
.text:0026E6F7                 fstp    st
.text:0026E6F9                 fstp    st
.text:0026E6FB                 fld     st
.text:0026E6FD                 fmul    st, st(1)
.text:0026E6FF                 fmul    st, st(2)
.text:0026E701                 fadd    [ebp+var_4]
.text:0026E704                 fstp    dword ptr [eax+28h]
.text:0026E707                 fstp    st
.text:0026E709                 pop     edi
.text:0026E70A                 fstp    st
.text:0026E70C                 pop     esi
.text:0026E70D                 fldz
.text:0026E70F                 fstp    dword ptr [eax+2Ch]
.text:0026E712                 fldz
.text:0026E714                 fstp    dword ptr [eax+30h]
.text:0026E717                 fldz
.text:0026E719                 fstp    dword ptr [eax+34h]
.text:0026E71C                 fldz
.text:0026E71E                 fstp    dword ptr [eax+38h]
.text:0026E721                 fld1
.text:0026E723                 fstp    dword ptr [eax+3Ch]
.text:0026E726                 leave
.text:0026E727                 retn    0Ch
.text:0026E727 sub_26E62B      endp
.text:0026E727
.text:0026E72A ; [000000E2 BYTES: COLLAPSED FUNCTION unknown_libname_54. PRESS KEYPAD "+" TO EXPAND]
.text:0026E80C
.text:0026E80C ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026E80C
.text:0026E80C ; Attributes: bp-based frame
.text:0026E80C
.text:0026E80C sub_26E80C      proc near               ; CODE XREF: sub_1F7C70+1B5p
.text:0026E80C                                         ; sub_1F7C70+1DCp ...
.text:0026E80C
.text:0026E80C var_1C          = dword ptr -1Ch
.text:0026E80C var_18          = dword ptr -18h
.text:0026E80C var_14          = dword ptr -14h
.text:0026E80C var_10          = dword ptr -10h
.text:0026E80C arg_0           = dword ptr  8
.text:0026E80C arg_4           = dword ptr  0Ch
.text:0026E80C arg_8           = dword ptr  10h
.text:0026E80C arg_C           = dword ptr  14h
.text:0026E80C
.text:0026E80C                 push    ebp
.text:0026E80D                 mov     ebp, esp
.text:0026E80F                 sub     esp, 10h
.text:0026E812                 fld     [ebp+arg_C]
.text:0026E815                 sub     esp, 0Ch
.text:0026E818                 fstp    [esp+1Ch+var_14]
.text:0026E81C                 lea     eax, [ebp+var_10]
.text:0026E81F                 fld     [ebp+arg_8]
.text:0026E822                 fstp    [esp+1Ch+var_18]
.text:0026E826                 fld     [ebp+arg_4]
.text:0026E829                 fstp    [esp+1Ch+var_1C]
.text:0026E82C                 push    eax
.text:0026E82D                 call    unknown_libname_61 ; XBOX Flirt v2.00 Final.
.text:0026E832                 lea     eax, [ebp+var_10]
.text:0026E835                 push    eax
.text:0026E836                 push    [ebp+arg_0]
.text:0026E839                 call    unknown_libname_54 ; XBOX Flirt v2.00 Final.
.text:0026E83E                 mov     eax, [ebp+arg_0]
.text:0026E841                 leave
.text:0026E842                 retn    10h
.text:0026E842 sub_26E80C      endp
.text:0026E842
.text:0026E845
.text:0026E845 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026E845
.text:0026E845 ; Attributes: bp-based frame
.text:0026E845
.text:0026E845 sub_26E845      proc near               ; CODE XREF: sub_13B030+A0Ep
.text:0026E845                                         ; sub_1680F0+200p
.text:0026E845
.text:0026E845 var_24          = dword ptr -24h
.text:0026E845 var_20          = dword ptr -20h
.text:0026E845 var_1C          = dword ptr -1Ch
.text:0026E845 var_18          = dword ptr -18h
.text:0026E845 var_14          = dword ptr -14h
.text:0026E845 var_10          = dword ptr -10h
.text:0026E845 var_C           = dword ptr -0Ch
.text:0026E845 var_8           = dword ptr -8
.text:0026E845 var_4           = dword ptr -4
.text:0026E845 arg_0           = dword ptr  8
.text:0026E845 arg_4           = dword ptr  0Ch
.text:0026E845 arg_8           = dword ptr  10h
.text:0026E845 arg_C           = dword ptr  14h
.text:0026E845
.text:0026E845                 push    ebp
.text:0026E846                 mov     ebp, esp
.text:0026E848                 sub     esp, 24h
.text:0026E84B                 push    esi
.text:0026E84C                 push    [ebp+arg_8]
.text:0026E84F                 mov     esi, [ebp+arg_4]
.text:0026E852                 push    esi
.text:0026E853                 lea     eax, [ebp+var_C]
.text:0026E856                 push    eax
.text:0026E857                 call    ?XGVec3Subtract@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Subtract(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E85C                 lea     eax, [ebp+var_C]
.text:0026E85F                 push    eax
.text:0026E860                 push    eax
.text:0026E861                 call    _XGVec3Normalize@8 ; XGVec3Normalize(x,x)
.text:0026E866                 lea     eax, [ebp+var_C]
.text:0026E869                 push    eax
.text:0026E86A                 push    [ebp+arg_C]
.text:0026E86D                 lea     eax, [ebp+var_18]
.text:0026E870                 push    eax
.text:0026E871                 call    ?XGVec3Cross@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Cross(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E876                 lea     eax, [ebp+var_18]
.text:0026E879                 push    eax
.text:0026E87A                 push    eax
.text:0026E87B                 call    _XGVec3Normalize@8 ; XGVec3Normalize(x,x)
.text:0026E880                 lea     eax, [ebp+var_18]
.text:0026E883                 push    eax
.text:0026E884                 lea     eax, [ebp+var_C]
.text:0026E887                 push    eax
.text:0026E888                 lea     eax, [ebp+var_24]
.text:0026E88B                 push    eax
.text:0026E88C                 call    ?XGVec3Cross@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Cross(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E891                 fld     [ebp+var_18]
.text:0026E894                 mov     eax, [ebp+arg_0]
.text:0026E897                 mov     ecx, [ebp+var_14]
.text:0026E89A                 fstp    dword ptr [eax]
.text:0026E89C                 fld     [ebp+var_18]
.text:0026E89F                 mov     [eax+10h], ecx
.text:0026E8A2                 mov     ecx, [ebp+var_10]
.text:0026E8A5                 mov     [eax+20h], ecx
.text:0026E8A8                 fmul    dword ptr [esi]
.text:0026E8AA                 fld     [ebp+var_10]
.text:0026E8AD                 mov     ecx, [ebp+var_24]
.text:0026E8B0                 fmul    dword ptr [esi+8]
.text:0026E8B3                 faddp   st(1), st
.text:0026E8B5                 fld     [ebp+var_14]
.text:0026E8B8                 fmul    dword ptr [esi+4]
.text:0026E8BB                 mov     [eax+4], ecx
.text:0026E8BE                 mov     ecx, [ebp+var_20]
.text:0026E8C1                 mov     [eax+14h], ecx
.text:0026E8C4                 mov     ecx, [ebp+var_1C]
.text:0026E8C7                 faddp   st(1), st
.text:0026E8C9                 mov     [eax+24h], ecx
.text:0026E8CC                 mov     ecx, [ebp+var_C]
.text:0026E8CF                 fchs
.text:0026E8D1                 fstp    dword ptr [eax+30h]
.text:0026E8D4                 fld     [ebp+var_24]
.text:0026E8D7                 fmul    dword ptr [esi]
.text:0026E8D9                 fld     [ebp+var_1C]
.text:0026E8DC                 fmul    dword ptr [esi+8]
.text:0026E8DF                 faddp   st(1), st
.text:0026E8E1                 fld     [ebp+var_20]
.text:0026E8E4                 fmul    dword ptr [esi+4]
.text:0026E8E7                 mov     [eax+8], ecx
.text:0026E8EA                 mov     ecx, [ebp+var_8]
.text:0026E8ED                 mov     [eax+18h], ecx
.text:0026E8F0                 mov     ecx, [ebp+var_4]
.text:0026E8F3                 faddp   st(1), st
.text:0026E8F5                 mov     [eax+28h], ecx
.text:0026E8F8                 fchs
.text:0026E8FA                 fstp    dword ptr [eax+34h]
.text:0026E8FD                 fld     [ebp+var_C]
.text:0026E900                 fmul    dword ptr [esi]
.text:0026E902                 fld     [ebp+var_4]
.text:0026E905                 fmul    dword ptr [esi+8]
.text:0026E908                 faddp   st(1), st
.text:0026E90A                 fld     [ebp+var_8]
.text:0026E90D                 fmul    dword ptr [esi+4]
.text:0026E910                 faddp   st(1), st
.text:0026E912                 fchs
.text:0026E914                 fstp    dword ptr [eax+38h]
.text:0026E917                 fldz
.text:0026E919                 fstp    dword ptr [eax+0Ch]
.text:0026E91C                 fldz
.text:0026E91E                 fstp    dword ptr [eax+1Ch]
.text:0026E921                 fldz
.text:0026E923                 pop     esi
.text:0026E924                 fstp    dword ptr [eax+2Ch]
.text:0026E927                 fld1
.text:0026E929                 fstp    dword ptr [eax+3Ch]
.text:0026E92C                 leave
.text:0026E92D                 retn    10h
.text:0026E92D sub_26E845      endp
.text:0026E92D
.text:0026E930
.text:0026E930 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026E930
.text:0026E930 ; Attributes: bp-based frame
.text:0026E930
.text:0026E930 sub_26E930      proc near               ; CODE XREF: sub_23DA0+58p
.text:0026E930                                         ; sub_8E650+2A7p ...
.text:0026E930
.text:0026E930 var_24          = dword ptr -24h
.text:0026E930 var_20          = dword ptr -20h
.text:0026E930 var_1C          = dword ptr -1Ch
.text:0026E930 var_18          = dword ptr -18h
.text:0026E930 var_14          = dword ptr -14h
.text:0026E930 var_10          = dword ptr -10h
.text:0026E930 var_C           = dword ptr -0Ch
.text:0026E930 var_8           = dword ptr -8
.text:0026E930 var_4           = dword ptr -4
.text:0026E930 arg_0           = dword ptr  8
.text:0026E930 arg_4           = dword ptr  0Ch
.text:0026E930 arg_8           = dword ptr  10h
.text:0026E930 arg_C           = dword ptr  14h
.text:0026E930
.text:0026E930                 push    ebp
.text:0026E931                 mov     ebp, esp
.text:0026E933                 sub     esp, 24h
.text:0026E936                 push    esi
.text:0026E937                 mov     esi, [ebp+arg_4]
.text:0026E93A                 push    esi
.text:0026E93B                 push    [ebp+arg_8]
.text:0026E93E                 lea     eax, [ebp+var_C]
.text:0026E941                 push    eax
.text:0026E942                 call    ?XGVec3Subtract@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Subtract(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E947                 lea     eax, [ebp+var_C]
.text:0026E94A                 push    eax
.text:0026E94B                 push    eax
.text:0026E94C                 call    _XGVec3Normalize@8 ; XGVec3Normalize(x,x)
.text:0026E951                 lea     eax, [ebp+var_C]
.text:0026E954                 push    eax
.text:0026E955                 push    [ebp+arg_C]
.text:0026E958                 lea     eax, [ebp+var_18]
.text:0026E95B                 push    eax
.text:0026E95C                 call    ?XGVec3Cross@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Cross(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E961                 lea     eax, [ebp+var_18]
.text:0026E964                 push    eax
.text:0026E965                 push    eax
.text:0026E966                 call    _XGVec3Normalize@8 ; XGVec3Normalize(x,x)
.text:0026E96B                 lea     eax, [ebp+var_18]
.text:0026E96E                 push    eax
.text:0026E96F                 lea     eax, [ebp+var_C]
.text:0026E972                 push    eax
.text:0026E973                 lea     eax, [ebp+var_24]
.text:0026E976                 push    eax
.text:0026E977                 call    ?XGVec3Cross@@YGPAUXGVECTOR3@@PAU1@PBU1@1@Z ; XGVec3Cross(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *)
.text:0026E97C                 fld     [ebp+var_18]
.text:0026E97F                 mov     eax, [ebp+arg_0]
.text:0026E982                 mov     ecx, [ebp+var_14]
.text:0026E985                 fstp    dword ptr [eax]
.text:0026E987                 fld     [ebp+var_18]
.text:0026E98A                 mov     [eax+10h], ecx
.text:0026E98D                 mov     ecx, [ebp+var_10]
.text:0026E990                 mov     [eax+20h], ecx
.text:0026E993                 fmul    dword ptr [esi]
.text:0026E995                 fld     [ebp+var_10]
.text:0026E998                 mov     ecx, [ebp+var_24]
.text:0026E99B                 fmul    dword ptr [esi+8]
.text:0026E99E                 faddp   st(1), st
.text:0026E9A0                 fld     [ebp+var_14]
.text:0026E9A3                 fmul    dword ptr [esi+4]
.text:0026E9A6                 mov     [eax+4], ecx
.text:0026E9A9                 mov     ecx, [ebp+var_20]
.text:0026E9AC                 mov     [eax+14h], ecx
.text:0026E9AF                 mov     ecx, [ebp+var_1C]
.text:0026E9B2                 faddp   st(1), st
.text:0026E9B4                 mov     [eax+24h], ecx
.text:0026E9B7                 mov     ecx, [ebp+var_C]
.text:0026E9BA                 fchs
.text:0026E9BC                 fstp    dword ptr [eax+30h]
.text:0026E9BF                 fld     [ebp+var_24]
.text:0026E9C2                 fmul    dword ptr [esi]
.text:0026E9C4                 fld     [ebp+var_1C]
.text:0026E9C7                 fmul    dword ptr [esi+8]
.text:0026E9CA                 faddp   st(1), st
.text:0026E9CC                 fld     [ebp+var_20]
.text:0026E9CF                 fmul    dword ptr [esi+4]
.text:0026E9D2                 mov     [eax+8], ecx
.text:0026E9D5                 mov     ecx, [ebp+var_8]
.text:0026E9D8                 mov     [eax+18h], ecx
.text:0026E9DB                 mov     ecx, [ebp+var_4]
.text:0026E9DE                 faddp   st(1), st
.text:0026E9E0                 mov     [eax+28h], ecx
.text:0026E9E3                 fchs
.text:0026E9E5                 fstp    dword ptr [eax+34h]
.text:0026E9E8                 fld     [ebp+var_C]
.text:0026E9EB                 fmul    dword ptr [esi]
.text:0026E9ED                 fld     [ebp+var_4]
.text:0026E9F0                 fmul    dword ptr [esi+8]
.text:0026E9F3                 faddp   st(1), st
.text:0026E9F5                 fld     [ebp+var_8]
.text:0026E9F8                 fmul    dword ptr [esi+4]
.text:0026E9FB                 faddp   st(1), st
.text:0026E9FD                 fchs
.text:0026E9FF                 fstp    dword ptr [eax+38h]
.text:0026EA02                 fldz
.text:0026EA04                 fstp    dword ptr [eax+0Ch]
.text:0026EA07                 fldz
.text:0026EA09                 fstp    dword ptr [eax+1Ch]
.text:0026EA0C                 fldz
.text:0026EA0E                 pop     esi
.text:0026EA0F                 fstp    dword ptr [eax+2Ch]
.text:0026EA12                 fld1
.text:0026EA14                 fstp    dword ptr [eax+3Ch]
.text:0026EA17                 leave
.text:0026EA18                 retn    10h
.text:0026EA18 sub_26E930      endp
.text:0026EA18
.text:0026EA1B ; [00000094 BYTES: COLLAPSED FUNCTION unknown_libname_55. PRESS KEYPAD "+" TO EXPAND]
.text:0026EAAF ; [000000A1 BYTES: COLLAPSED FUNCTION unknown_libname_56. PRESS KEYPAD "+" TO EXPAND]
.text:0026EB50 ; [00000074 BYTES: COLLAPSED FUNCTION unknown_libname_57. PRESS KEYPAD "+" TO EXPAND]
.text:0026EBC4 ; [000000A2 BYTES: COLLAPSED FUNCTION unknown_libname_58. PRESS KEYPAD "+" TO EXPAND]
.text:0026EC66 ; [000000A4 BYTES: COLLAPSED FUNCTION unknown_libname_59. PRESS KEYPAD "+" TO EXPAND]
.text:0026ED0A ; [000000BF BYTES: COLLAPSED FUNCTION XGMatrixReflect(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026EDC9 ; [0000007C BYTES: COLLAPSED FUNCTION XGQuaternionToAxisAngle(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026EE45 ; [00000134 BYTES: COLLAPSED FUNCTION unknown_libname_60. PRESS KEYPAD "+" TO EXPAND]
.text:0026EF79 ; [0000005C BYTES: COLLAPSED FUNCTION XGQuaternionRotationAxis(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026EFD5 ; [000000D9 BYTES: COLLAPSED FUNCTION unknown_libname_61. PRESS KEYPAD "+" TO EXPAND]
.text:0026F0AE
.text:0026F0AE ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F0AE
.text:0026F0AE
.text:0026F0AE sub_26F0AE      proc near               ; CODE XREF: sub_3A710+170p
.text:0026F0AE                                         ; sub_3A710+223p ...
.text:0026F0AE
.text:0026F0AE var_4           = dword ptr -4
.text:0026F0AE arg_0           = dword ptr  4
.text:0026F0AE arg_4           = dword ptr  8
.text:0026F0AE arg_8           = dword ptr  0Ch
.text:0026F0AE
.text:0026F0AE                 push    ecx
.text:0026F0AF                 mov     [esp+4+var_4], 80000000h
.text:0026F0B6                 movss   xmm0, [esp+4+var_4]
.text:0026F0BB                 mov     ecx, [esp+4+arg_4]
.text:0026F0BF                 movups  xmm1, oword ptr [ecx]
.text:0026F0C2                 mov     edx, [esp+4+arg_8]
.text:0026F0C6                 movaps  xmm3, xmm1
.text:0026F0C9                 movss   xmm2, dword ptr [edx+0Ch]
.text:0026F0CE                 shufps  xmm2, xmm2, 0
.text:0026F0D2                 mulps   xmm3, xmm2
.text:0026F0D5                 shufps  xmm0, xmm0, 11h
.text:0026F0D9                 movaps  xmm4, xmm1
.text:0026F0DC                 shufps  xmm4, xmm4, 1Bh
.text:0026F0E0                 movss   xmm2, dword ptr [edx]
.text:0026F0E4                 shufps  xmm2, xmm2, 0
.text:0026F0E8                 mulps   xmm4, xmm2
.text:0026F0EB                 xorps   xmm4, xmm0
.text:0026F0EE                 addps   xmm3, xmm4
.text:0026F0F1                 shufps  xmm0, xmm0, 50h
.text:0026F0F5                 movaps  xmm4, xmm1
.text:0026F0F8                 shufps  xmm4, xmm4, 4Eh
.text:0026F0FC                 movss   xmm2, dword ptr [edx+4]
.text:0026F101                 shufps  xmm2, xmm2, 0
.text:0026F105                 mulps   xmm4, xmm2
.text:0026F108                 xorps   xmm4, xmm0
.text:0026F10B                 addps   xmm3, xmm4
.text:0026F10E                 shufps  xmm0, xmm0, 82h
.text:0026F112                 movaps  xmm4, xmm1
.text:0026F115                 shufps  xmm4, xmm4, 0B1h
.text:0026F119                 movss   xmm2, dword ptr [edx+8]
.text:0026F11E                 shufps  xmm2, xmm2, 0
.text:0026F122                 mulps   xmm4, xmm2
.text:0026F125                 xorps   xmm4, xmm0
.text:0026F128                 addps   xmm3, xmm4
.text:0026F12B                 mov     eax, [esp+4+arg_0]
.text:0026F12F                 movups  oword ptr [eax], xmm3
.text:0026F132                 pop     ecx
.text:0026F133                 retn    0Ch
.text:0026F133 sub_26F0AE      endp
.text:0026F133
.text:0026F136 ; [0000006A BYTES: COLLAPSED FUNCTION XGQuaternionInverse(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F1A0 ; [000000C1 BYTES: COLLAPSED FUNCTION XGQuaternionSlerp(x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F261 ; [00000057 BYTES: COLLAPSED FUNCTION XGQuaternionSquad(x,x,x,x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F2B8 ; [000000A1 BYTES: COLLAPSED FUNCTION XGPlaneNormalize(x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F359
.text:0026F359 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F359
.text:0026F359 ; Attributes: bp-based frame
.text:0026F359
.text:0026F359 sub_26F359      proc near               ; CODE XREF: sub_160510+35Cp
.text:0026F359
.text:0026F359 var_C           = qword ptr -0Ch
.text:0026F359 var_4           = dword ptr -4
.text:0026F359 arg_0           = dword ptr  8
.text:0026F359 arg_4           = dword ptr  0Ch
.text:0026F359 arg_8           = dword ptr  10h
.text:0026F359 arg_C           = dword ptr  14h
.text:0026F359
.text:0026F359                 push    ebp
.text:0026F35A                 mov     ebp, esp
.text:0026F35C                 push    ecx
.text:0026F35D                 push    [ebp+arg_8]
.text:0026F360                 push    [ebp+arg_4]
.text:0026F363                 call    ?XGPlaneDotNormal@@YGMPBUXGPLANE@@PBUXGVECTOR3@@@Z ; XGPlaneDotNormal(XGPLANE const *,XGVECTOR3 const *)
.text:0026F368                 fstp    [ebp+var_4]
.text:0026F36B                 push    [ebp+arg_C]
.text:0026F36E                 push    [ebp+arg_4]
.text:0026F371                 call    ?XGPlaneDotNormal@@YGMPBUXGPLANE@@PBUXGVECTOR3@@@Z ; XGPlaneDotNormal(XGPLANE const *,XGVECTOR3 const *)
.text:0026F376                 fsubr   [ebp+var_4]
.text:0026F379                 fstp    [ebp+var_4]
.text:0026F37C                 fld     ds:dword_486E50
.text:0026F382                 fld     [ebp+var_4]
.text:0026F385                 fucompp
.text:0026F387                 fnstsw  ax
.text:0026F389                 test    ah, 44h
.text:0026F38C                 jnp     short loc_26F3AF
.text:0026F38E                 push    [ebp+arg_8]
.text:0026F391                 push    [ebp+arg_4]
.text:0026F394                 call    ?XGPlaneDotCoord@@YGMPBUXGPLANE@@PBUXGVECTOR3@@@Z ; XGPlaneDotCoord(XGPLANE const *,XGVECTOR3 const *)
.text:0026F399                 fdiv    [ebp+var_4]
.text:0026F39C                 push    ecx
.text:0026F39D                 push    ecx             ; double
.text:0026F39E                 fst     [ebp+arg_4]
.text:0026F3A1                 fstp    [esp+0Ch+var_C]
.text:0026F3A4                 call    __finite
.text:0026F3A9                 test    eax, eax
.text:0026F3AB                 pop     ecx
.text:0026F3AC                 pop     ecx
.text:0026F3AD                 jnz     short loc_26F3B3
.text:0026F3AF
.text:0026F3AF loc_26F3AF:                             ; CODE XREF: sub_26F359+33j
.text:0026F3AF                 xor     eax, eax
.text:0026F3B1                 jmp     short locret_26F3CB
.text:0026F3B3 ; ---------------------------------------------------------------------------
.text:0026F3B3
.text:0026F3B3 loc_26F3B3:                             ; CODE XREF: sub_26F359+54j
.text:0026F3B3                 fld     [ebp+arg_4]
.text:0026F3B6                 push    ecx
.text:0026F3B7                 fstp    dword ptr [esp+8+var_C+4]
.text:0026F3BA                 push    [ebp+arg_C]
.text:0026F3BD                 push    [ebp+arg_8]
.text:0026F3C0                 push    [ebp+arg_0]
.text:0026F3C3                 call    ?XGVec3Lerp@@YGPAUXGVECTOR3@@PAU1@PBU1@1M@Z ; XGVec3Lerp(XGVECTOR3 *,XGVECTOR3 const *,XGVECTOR3 const *,float)
.text:0026F3C8                 mov     eax, [ebp+arg_0]
.text:0026F3CB
.text:0026F3CB locret_26F3CB:                          ; CODE XREF: sub_26F359+58j
.text:0026F3CB                 leave
.text:0026F3CC                 retn    10h
.text:0026F3CC sub_26F359      endp
.text:0026F3CC
.text:0026F3CF ; [0000002E BYTES: COLLAPSED FUNCTION XGPlaneFromPointNormal(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F3FD
.text:0026F3FD ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F3FD
.text:0026F3FD
.text:0026F3FD sub_26F3FD      proc near               ; CODE XREF: sub_3E8326+505p
.text:0026F3FD
.text:0026F3FD var_8           = qword ptr -8
.text:0026F3FD arg_0           = dword ptr  4
.text:0026F3FD
.text:0026F3FD                 fld     [esp+arg_0]
.text:0026F401                 push    ecx
.text:0026F402                 push    ecx
.text:0026F403                 fstp    [esp+8+var_8]
.text:0026F406                 call    sub_2F95E7
.text:0026F40B                 pop     ecx
.text:0026F40C                 pop     ecx
.text:0026F40D                 retn    4
.text:0026F40D sub_26F3FD      endp
.text:0026F40D
.text:0026F410 ; ---------------------------------------------------------------------------
.text:0026F410
.text:0026F410 loc_26F410:                             ; DATA XREF: .rdata:off_4CEC80o
.text:0026F410                 sub     ecx, 4
.text:0026F413                 jmp     loc_3F39D3
.text:0026F418 ; ---------------------------------------------------------------------------
.text:0026F418
.text:0026F418 loc_26F418:                             ; DATA XREF: .rdata:off_4CED58o
.text:0026F418                 sub     ecx, 8
.text:0026F41B                 jmp     ??_GCMcpxAPU@DirectSound@@UAEPAXI@Z ; DirectSound::CMcpxAPU::`scalar deleting destructor'(uint)
.text:0026F420
.text:0026F420 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F420
.text:0026F420
.text:0026F420 sub_26F420      proc near               ; CODE XREF: auAdaptToSubFrameConfig_XDS(x)+25Cp
.text:0026F420
.text:0026F420 arg_0           = dword ptr  4
.text:0026F420
.text:0026F420                 mov     eax, [esp+arg_0]
.text:0026F424                 mov     ecx, [eax+380h]
.text:0026F42A                 push    ebx
.text:0026F42B                 push    esi
.text:0026F42C                 mov     esi, [eax+384h]
.text:0026F432                 cmp     ecx, esi
.text:0026F434                 push    edi
.text:0026F435                 jl      short loc_26F439
.text:0026F437                 mov     ecx, esi
.text:0026F439
.text:0026F439 loc_26F439:                             ; CODE XREF: sub_26F420+15j
.text:0026F439                 mov     edx, ecx
.text:0026F43B                 sub     edx, 40h
.text:0026F43E                 mov     edi, 100h
.text:0026F443                 mov     ebx, 200h
.text:0026F448                 jz      short loc_26F499
.text:0026F44A                 sub     edx, 40h
.text:0026F44D                 jz      short loc_26F491
.text:0026F44F                 sub     edx, 80h
.text:0026F455                 jz      short loc_26F489
.text:0026F457                 sub     edx, edi
.text:0026F459                 jz      short loc_26F481
.text:0026F45B                 sub     edx, ebx
.text:0026F45D                 jz      short loc_26F479
.text:0026F45F                 sub     edx, 400h
.text:0026F465                 jz      short loc_26F471
.text:0026F467                 mov     eax, 80040002h
.text:0026F46C                 jmp     loc_26F5AD
.text:0026F471 ; ---------------------------------------------------------------------------
.text:0026F471
.text:0026F471 loc_26F471:                             ; CODE XREF: sub_26F420+45j
.text:0026F471                 mov     edx, [eax+410h]
.text:0026F477                 jmp     short loc_26F49F
.text:0026F479 ; ---------------------------------------------------------------------------
.text:0026F479
.text:0026F479 loc_26F479:                             ; CODE XREF: sub_26F420+3Dj
.text:0026F479                 mov     edx, [eax+414h]
.text:0026F47F                 jmp     short loc_26F49F
.text:0026F481 ; ---------------------------------------------------------------------------
.text:0026F481
.text:0026F481 loc_26F481:                             ; CODE XREF: sub_26F420+39j
.text:0026F481                 mov     edx, [eax+418h]
.text:0026F487                 jmp     short loc_26F49F
.text:0026F489 ; ---------------------------------------------------------------------------
.text:0026F489
.text:0026F489 loc_26F489:                             ; CODE XREF: sub_26F420+35j
.text:0026F489                 mov     edx, [eax+41Ch]
.text:0026F48F                 jmp     short loc_26F49F
.text:0026F491 ; ---------------------------------------------------------------------------
.text:0026F491
.text:0026F491 loc_26F491:                             ; CODE XREF: sub_26F420+2Dj
.text:0026F491                 mov     edx, [eax+420h]
.text:0026F497                 jmp     short loc_26F49F
.text:0026F499 ; ---------------------------------------------------------------------------
.text:0026F499
.text:0026F499 loc_26F499:                             ; CODE XREF: sub_26F420+28j
.text:0026F499                 mov     edx, [eax+424h]
.text:0026F49F
.text:0026F49F loc_26F49F:                             ; CODE XREF: sub_26F420+57j
.text:0026F49F                                         ; sub_26F420+5Fj ...
.text:0026F49F                 mov     [eax+428h], edx
.text:0026F4A5                 sar     ecx, 7
.text:0026F4A8                 mov     ecx, ds:off_424DA0[ecx*4]
.text:0026F4AF                 mov     edx, [ecx]
.text:0026F4B1                 mov     [eax+358h], edx
.text:0026F4B7                 mov     edx, [ecx+4]
.text:0026F4BA                 mov     [eax+35Ch], edx
.text:0026F4C0                 fld     dword ptr [ecx]
.text:0026F4C2                 fchs
.text:0026F4C4                 fstp    dword ptr [eax+360h]
.text:0026F4CA                 mov     edx, [ecx+4]
.text:0026F4CD                 fld     ds:dword_486E80
.text:0026F4D3                 mov     [eax+364h], edx
.text:0026F4D9                 fld     dword ptr [ecx+20h]
.text:0026F4DC                 mov     ecx, [eax+388h]
.text:0026F4E2                 cmp     ecx, esi
.text:0026F4E4                 fmul    st, st(1)
.text:0026F4E6                 mov     edx, esi
.text:0026F4E8                 fstp    dword ptr [eax+368h]
.text:0026F4EE                 jge     short loc_26F4F2
.text:0026F4F0                 mov     edx, ecx
.text:0026F4F2
.text:0026F4F2 loc_26F4F2:                             ; CODE XREF: sub_26F420+CEj
.text:0026F4F2                 mov     ecx, edx
.text:0026F4F4                 sub     ecx, 40h
.text:0026F4F7                 jz      short loc_26F562
.text:0026F4F9                 sub     ecx, 40h
.text:0026F4FC                 jz      short loc_26F558
.text:0026F4FE                 sub     ecx, 80h
.text:0026F504                 jz      short loc_26F54A
.text:0026F506                 sub     ecx, edi
.text:0026F508                 jz      short loc_26F53C
.text:0026F50A                 sub     ecx, ebx
.text:0026F50C                 jz      short loc_26F52E
.text:0026F50E                 sub     ecx, 400h
.text:0026F514                 jz      short loc_26F520
.text:0026F516                 mov     eax, 80040002h
.text:0026F51B                 jmp     loc_26F5AB
.text:0026F520 ; ---------------------------------------------------------------------------
.text:0026F520
.text:0026F520 loc_26F520:                             ; CODE XREF: sub_26F420+F4j
.text:0026F520                 mov     ecx, [eax+410h]
.text:0026F526                 add     ecx, 2000h
.text:0026F52C                 jmp     short loc_26F56A
.text:0026F52E ; ---------------------------------------------------------------------------
.text:0026F52E
.text:0026F52E loc_26F52E:                             ; CODE XREF: sub_26F420+ECj
.text:0026F52E                 mov     ecx, [eax+414h]
.text:0026F534                 add     ecx, 1000h
.text:0026F53A                 jmp     short loc_26F56A
.text:0026F53C ; ---------------------------------------------------------------------------
.text:0026F53C
.text:0026F53C loc_26F53C:                             ; CODE XREF: sub_26F420+E8j
.text:0026F53C                 mov     ecx, [eax+418h]
.text:0026F542                 add     ecx, 800h
.text:0026F548                 jmp     short loc_26F56A
.text:0026F54A ; ---------------------------------------------------------------------------
.text:0026F54A
.text:0026F54A loc_26F54A:                             ; CODE XREF: sub_26F420+E4j
.text:0026F54A                 mov     ecx, [eax+41Ch]
.text:0026F550                 add     ecx, 400h
.text:0026F556                 jmp     short loc_26F56A
.text:0026F558 ; ---------------------------------------------------------------------------
.text:0026F558
.text:0026F558 loc_26F558:                             ; CODE XREF: sub_26F420+DCj
.text:0026F558                 mov     ecx, [eax+420h]
.text:0026F55E                 add     ecx, ebx
.text:0026F560                 jmp     short loc_26F56A
.text:0026F562 ; ---------------------------------------------------------------------------
.text:0026F562
.text:0026F562 loc_26F562:                             ; CODE XREF: sub_26F420+D7j
.text:0026F562                 mov     ecx, [eax+424h]
.text:0026F568                 add     ecx, edi
.text:0026F56A
.text:0026F56A loc_26F56A:                             ; CODE XREF: sub_26F420+10Cj
.text:0026F56A                                         ; sub_26F420+11Aj ...
.text:0026F56A                 mov     [eax+42Ch], ecx
.text:0026F570                 sar     edx, 7
.text:0026F573                 mov     ecx, ds:off_424DA0[edx*4]
.text:0026F57A                 mov     edx, [ecx+4]
.text:0026F57D                 mov     [eax+36Ch], edx
.text:0026F583                 fld     dword ptr [ecx]
.text:0026F585                 fchs
.text:0026F587                 fstp    dword ptr [eax+370h]
.text:0026F58D                 mov     edx, [ecx+4]
.text:0026F590                 mov     [eax+374h], edx
.text:0026F596                 mov     edx, [ecx]
.text:0026F598                 mov     [eax+378h], edx
.text:0026F59E                 fld     dword ptr [ecx+20h]
.text:0026F5A1                 fmul    st, st(1)
.text:0026F5A3                 fstp    dword ptr [eax+37Ch]
.text:0026F5A9                 xor     eax, eax
.text:0026F5AB
.text:0026F5AB loc_26F5AB:                             ; CODE XREF: sub_26F420+FBj
.text:0026F5AB                 fstp    st
.text:0026F5AD
.text:0026F5AD loc_26F5AD:                             ; CODE XREF: sub_26F420+4Cj
.text:0026F5AD                 pop     edi
.text:0026F5AE                 pop     esi
.text:0026F5AF                 pop     ebx
.text:0026F5B0                 retn    4
.text:0026F5B0 sub_26F420      endp
.text:0026F5B0
.text:0026F5B3 ; [0000039E BYTES: COLLAPSED FUNCTION prvInverseQuantizeLowRate_XDS(x,x,x). PRESS KEYPAD "+" TO EXPAND]
.text:0026F951                 align 2
.text:0026F952
.text:0026F952 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F952
.text:0026F952 ; Attributes: thunk
.text:0026F952
.text:0026F952 sub_26F952      proc near               ; CODE XREF: XShaHmacInitialize(x,x,x)+59p
.text:0026F952                                         ; sub_266A61j ...
.text:0026F952                 jmp     ds:dword_485E50
.text:0026F952 sub_26F952      endp
.text:0026F952
.text:0026F958
.text:0026F958 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F958
.text:0026F958 ; Attributes: thunk
.text:0026F958
.text:0026F958 sub_26F958      proc near               ; CODE XREF: XShaHmacInitialize(x,x,x)+4Bp
.text:0026F958                                         ; XShaHmacComputeFinal(x,x,x,x)+52p ...
.text:0026F958                 jmp     ds:dword_485E54
.text:0026F958 sub_26F958      endp
.text:0026F958
.text:0026F95E
.text:0026F95E ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F95E
.text:0026F95E ; Attributes: thunk
.text:0026F95E
.text:0026F95E sub_26F95E      proc near               ; CODE XREF: XShaHmacComputeFinal(x,x,x,x)+4Cp
.text:0026F95E                                         ; XShaHmacComputeFinal(x,x,x,x)+67p ...
.text:0026F95E                 jmp     ds:dword_485E58
.text:0026F95E sub_26F95E      endp
.text:0026F95E
.text:0026F964
.text:0026F964 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F964
.text:0026F964 ; Attributes: thunk
.text:0026F964
.text:0026F964 sub_26F964      proc near               ; CODE XREF: sub_267ECD+13p
.text:0026F964                                         ; sub_2689DA+13p ...
.text:0026F964                 jmp     ds:dword_485EB8
.text:0026F964 sub_26F964      endp
.text:0026F964
.text:0026F96A
.text:0026F96A ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F96A
.text:0026F96A ; Attributes: thunk
.text:0026F96A
.text:0026F96A sub_26F96A      proc near               ; CODE XREF: XComputeContentSignatureKey(x,x)+17p
.text:0026F96A                                         ; CXo::SignOnlineUserStruct(XC_ONLINE_USER_ACCOUNT_STRUCT *,uchar *)+29p ...
.text:0026F96A                 jmp     ds:dword_485F44
.text:0026F96A sub_26F96A      endp
.text:0026F96A
.text:0026F970
.text:0026F970 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F970
.text:0026F970 ; Attributes: thunk
.text:0026F970
.text:0026F970 sub_26F970      proc near               ; CODE XREF: sub_3C4780+27p
.text:0026F970                 jmp     ds:dword_485F70
.text:0026F970 sub_26F970      endp
.text:0026F970
.text:0026F970 ; ---------------------------------------------------------------------------
.text:0026F976                 align 10h
.text:0026F980
.text:0026F980 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F980
.text:0026F980
.text:0026F980 sub_26F980      proc near               ; CODE XREF: sub_63540+32p
.text:0026F980
.text:0026F980 arg_0           = dword ptr  4
.text:0026F980
.text:0026F980                 call    _GetCurrentThreadId@0 ; GetCurrentThreadId()
.text:0026F985                 mov     dword_5E4ED4, eax
.text:0026F98A                 mov     eax, [esp+arg_0]
.text:0026F98E                 mov     dword_5E4ED8, eax
.text:0026F993                 retn
.text:0026F993 sub_26F980      endp
.text:0026F993
.text:0026F993 ; ---------------------------------------------------------------------------
.text:0026F994                 align 10h
.text:0026F9A0
.text:0026F9A0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F9A0
.text:0026F9A0
.text:0026F9A0 sub_26F9A0      proc near               ; CODE XREF: sub_62C80+Ap
.text:0026F9A0                 mov     eax, offset aFinalBuild ; "FINAL Build"
.text:0026F9A5                 retn
.text:0026F9A5 sub_26F9A0      endp
.text:0026F9A5
.text:0026F9A5 ; ---------------------------------------------------------------------------
.text:0026F9A6                 align 10h
.text:0026F9B0
.text:0026F9B0 loc_26F9B0:                             ; DATA XREF: .rdata:004CF00Co
.text:0026F9B0                                         ; .rdata:004CF048o
.text:0026F9B0                 mov     eax, [esp+4]
.text:0026F9B4                 lea     edx, [eax+1]
.text:0026F9B7
.text:0026F9B7 loc_26F9B7:                             ; CODE XREF: .text:0026F9BCj
.text:0026F9B7                 mov     cl, [eax]
.text:0026F9B9                 inc     eax
.text:0026F9BA                 test    cl, cl
.text:0026F9BC                 jnz     short loc_26F9B7
.text:0026F9BE                 sub     eax, edx
.text:0026F9C0                 retn    4
.text:0026F9C0 ; ---------------------------------------------------------------------------
.text:0026F9C3                 align 10h
.text:0026F9D0
.text:0026F9D0 loc_26F9D0:                             ; DATA XREF: .rdata:0049580Co
.text:0026F9D0                                         ; .rdata:004ADE38o ...
.text:0026F9D0                 mov     eax, [esp+8]
.text:0026F9D4                 retn    8
.text:0026F9D4 ; ---------------------------------------------------------------------------
.text:0026F9D7                 align 10h
.text:0026F9E0
.text:0026F9E0 loc_26F9E0:                             ; DATA XREF: .rdata:004CF080o
.text:0026F9E0                                         ; .rdata:004CF0BCo
.text:0026F9E0                 jmp     _lstrlenW@4     ; lstrlenW(x)
.text:0026F9E0 ; ---------------------------------------------------------------------------
.text:0026F9E5                 align 10h
.text:0026F9F0
.text:0026F9F0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026F9F0
.text:0026F9F0
.text:0026F9F0 sub_26F9F0      proc near               ; CODE XREF: .text:00308CA5p
.text:0026F9F0                 push    ebx
.text:0026F9F1                 push    esi
.text:0026F9F2                 mov     esi, ecx
.text:0026F9F4                 push    edi
.text:0026F9F5                 lea     ecx, [esi+8]
.text:0026F9F8                 mov     dword ptr [esi], offset off_48A848
.text:0026F9FE                 call    sub_270670
.text:0026FA03                 mov     eax, offset dword_48A880
.text:0026FA08                 mov     [esi+0Ch], eax
.text:0026FA0B                 mov     [esi+10h], eax
.text:0026FA0E                 mov     dword ptr [esi+14h], offset dword_48A87C
.text:0026FA15                 mov     dword ptr [esi+18h], offset dword_48A878
.text:0026FA1C                 mov     dword ptr [esi], offset off_4CF0C8
.text:0026FA22                 mov     dword ptr [esi+1Ch], 4
.text:0026FA29                 lea     edi, [esi+0A20h]
.text:0026FA2F                 mov     ebx, 0Ah
.text:0026FA34
.text:0026FA34 loc_26FA34:                             ; CODE XREF: sub_26F9F0+4Fj
.text:0026FA34                 mov     ecx, edi
.text:0026FA36                 call    sub_19E80
.text:0026FA3B                 add     edi, 10h
.text:0026FA3E                 dec     ebx
.text:0026FA3F                 jnz     short loc_26FA34
.text:0026FA41                 mov     dword ptr [esi+0AC0h], 0
.text:0026FA4B                 lea     eax, [esi+20h]
.text:0026FA4E                 mov     ecx, 0Ah
.text:0026FA53
.text:0026FA53 loc_26FA53:                             ; CODE XREF: sub_26F9F0+6Cj
.text:0026FA53                 mov     byte ptr [eax], 0
.text:0026FA56                 add     eax, 100h
.text:0026FA5B                 dec     ecx
.text:0026FA5C                 jnz     short loc_26FA53
.text:0026FA5E                 pop     edi
.text:0026FA5F                 mov     eax, esi
.text:0026FA61                 pop     esi
.text:0026FA62                 pop     ebx
.text:0026FA63                 retn
.text:0026FA63 sub_26F9F0      endp
.text:0026FA63
.text:0026FA63 ; ---------------------------------------------------------------------------
.text:0026FA64                 align 10h
.text:0026FA70
.text:0026FA70 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026FA70
.text:0026FA70
.text:0026FA70 sub_26FA70      proc near               ; DATA XREF: .rdata:004CF0FCo
.text:0026FA70
.text:0026FA70 var_14          = dword ptr -14h
.text:0026FA70 var_8           = qword ptr -8
.text:0026FA70 arg_0           = dword ptr  4
.text:0026FA70
.text:0026FA70                 sub     esp, 8
.text:0026FA73                 push    ebx
.text:0026FA74                 push    esi
.text:0026FA75                 mov     esi, ecx
.text:0026FA77                 mov     ecx, [esi+0AC0h]
.text:0026FA7D                 mov     eax, ecx
.text:0026FA7F                 shl     eax, 8
.text:0026FA82                 lea     eax, [eax+esi+20h]
.text:0026FA86                 push    edi
.text:0026FA87                 lea     edi, [eax+1]
.text:0026FA8A                 xor     ebx, ebx
.text:0026FA8C                 lea     esp, [esp+0]
.text:0026FA90
.text:0026FA90 loc_26FA90:                             ; CODE XREF: sub_26FA70+25j
.text:0026FA90                 mov     dl, [eax]
.text:0026FA92                 inc     eax
.text:0026FA93                 cmp     dl, bl
.text:0026FA95                 jnz     short loc_26FA90
.text:0026FA97                 sub     eax, edi
.text:0026FA99                 lea     edi, [ecx+0A2h]
.text:0026FA9F                 shl     edi, 4
.text:0026FAA2                 add     edi, esi
.text:0026FAA4                 push    ebp
.text:0026FAA5                 mov     ecx, edi
.text:0026FAA7                 mov     ebp, eax
.text:0026FAA9                 call    sub_19EA0
.text:0026FAAE                 mov     dword ptr [esp+18h+var_8], eax
.text:0026FAB2                 mov     eax, edx
.text:0026FAB4                 and     edx, 7FFFFFFFh
.text:0026FABA                 mov     dword ptr [esp+18h+var_8+4], edx
.text:0026FABE                 fild    [esp+18h+var_8]
.text:0026FAC2                 and     eax, 80000000h
.text:0026FAC7                 mov     dword ptr [esp+18h+var_8+4], eax
.text:0026FACB                 mov     dword ptr [esp+18h+var_8], ebx
.text:0026FACF                 fild    [esp+18h+var_8]
.text:0026FAD3                 fchs
.text:0026FAD5                 faddp   st(1), st
.text:0026FAD7                 fmul    ds:dbl_487898
.text:0026FADD                 fst     qword ptr [edi+8]
.text:0026FAE0                 fild    dword ptr [esi+1Ch]
.text:0026FAE3                 fxch    st(1)
.text:0026FAE5                 fcomip  st, st(1)
.text:0026FAE7                 fstp    st
.text:0026FAE9                 jbe     short loc_26FAF8
.text:0026FAEB                 mov     ecx, [esi+0AC0h]
.text:0026FAF1                 shl     ecx, 8
.text:0026FAF4                 mov     [ecx+esi+20h], bl
.text:0026FAF8
.text:0026FAF8 loc_26FAF8:                             ; CODE XREF: sub_26FA70+79j
.text:0026FAF8                 mov     ecx, [esi+0AC0h]
.text:0026FAFE                 add     ecx, 0A2h
.text:0026FB04                 shl     ecx, 4
.text:0026FB07                 add     ecx, esi
.text:0026FB09                 call    sub_19E80
.text:0026FB0E                 mov     edi, [esp+18h+arg_0]
.text:0026FB12                 cmp     [edi], bl
.text:0026FB14                 jz      short loc_26FB86
.text:0026FB16
.text:0026FB16 loc_26FB16:                             ; CODE XREF: sub_26FA70+114j
.text:0026FB16                 cmp     ebp, 0FFh
.text:0026FB1C                 jge     short loc_26FB86
.text:0026FB1E                 cmp     byte ptr [edi], 0Ah
.text:0026FB21                 jnz     short loc_26FB60
.text:0026FB23                 mov     ecx, [esi+0AC0h]
.text:0026FB29                 inc     ecx
.text:0026FB2A                 mov     eax, ecx
.text:0026FB2C                 cmp     eax, 0Ah
.text:0026FB2F                 mov     [esi+0AC0h], ecx
.text:0026FB35                 jl      short loc_26FB3D
.text:0026FB37                 mov     [esi+0AC0h], ebx
.text:0026FB3D
.text:0026FB3D loc_26FB3D:                             ; CODE XREF: sub_26FA70+C5j
.text:0026FB3D                 mov     edx, [esi+0AC0h]
.text:0026FB43                 shl     edx, 8
.text:0026FB46                 mov     [edx+esi+20h], bl
.text:0026FB4A                 mov     ecx, [esi+0AC0h]
.text:0026FB50                 add     ecx, 0A2h
.text:0026FB56                 shl     ecx, 4
.text:0026FB59                 add     ecx, esi
.text:0026FB5B                 call    sub_19E80
.text:0026FB60
.text:0026FB60 loc_26FB60:                             ; CODE XREF: sub_26FA70+B1j
.text:0026FB60                 mov     eax, [esi+0AC0h]
.text:0026FB66                 mov     cl, [edi]
.text:0026FB68                 shl     eax, 8
.text:0026FB6B                 add     eax, ebp
.text:0026FB6D                 mov     [eax+esi+20h], cl
.text:0026FB71                 mov     edx, [esi+0AC0h]
.text:0026FB77                 inc     ebp
.text:0026FB78                 shl     edx, 8
.text:0026FB7B                 add     edx, ebp
.text:0026FB7D                 inc     edi
.text:0026FB7E                 mov     [edx+esi+20h], bl
.text:0026FB82                 cmp     [edi], bl
.text:0026FB84                 jnz     short loc_26FB16
.text:0026FB86
.text:0026FB86 loc_26FB86:                             ; CODE XREF: sub_26FA70+A4j
.text:0026FB86                                         ; sub_26FA70+ACj
.text:0026FB86                 mov     eax, [esp+18h+arg_0]
.text:0026FB8A                 lea     edx, [eax+1]
.text:0026FB8D                 pop     ebp
.text:0026FB8E                 mov     edi, edi
.text:0026FB90
.text:0026FB90 loc_26FB90:                             ; CODE XREF: sub_26FA70+125j
.text:0026FB90                 mov     cl, [eax]
.text:0026FB92                 inc     eax
.text:0026FB93                 cmp     cl, bl
.text:0026FB95                 jnz     short loc_26FB90
.text:0026FB97                 pop     edi
.text:0026FB98                 pop     esi
.text:0026FB99                 sub     eax, edx
.text:0026FB9B                 pop     ebx
.text:0026FB9C                 add     esp, 8
.text:0026FB9F                 retn    4
.text:0026FB9F sub_26FA70      endp
.text:0026FB9F
.text:0026FB9F ; ---------------------------------------------------------------------------
.text:0026FBA2                 align 10h
.text:0026FBB0
.text:0026FBB0 loc_26FBB0:                             ; DATA XREF: .rdata:off_48A848o
.text:0026FBB0                                         ; .rdata:off_48A88Co ...
.text:0026FBB0                 push    esi
.text:0026FBB1                 mov     esi, ecx
.text:0026FBB3                 lea     ecx, [esi+8]
.text:0026FBB6                 mov     dword ptr [esi], offset off_48A848
.text:0026FBBC                 call    sub_270690
.text:0026FBC1                 test    byte ptr [esp+8], 1
.text:0026FBC6                 jz      short loc_26FBD1
.text:0026FBC8                 push    esi
.text:0026FBC9                 call    sub_59560
.text:0026FBCE                 add     esp, 4
.text:0026FBD1
.text:0026FBD1 loc_26FBD1:                             ; CODE XREF: .text:0026FBC6j
.text:0026FBD1                 mov     eax, esi
.text:0026FBD3                 pop     esi
.text:0026FBD4                 retn    4
.text:0026FBD4 ; ---------------------------------------------------------------------------
.text:0026FBD7                 align 10h
.text:0026FBE0
.text:0026FBE0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026FBE0
.text:0026FBE0 ; Attributes: bp-based frame
.text:0026FBE0
.text:0026FBE0 sub_26FBE0      proc near               ; CODE XREF: sub_26FF20+23p
.text:0026FBE0
.text:0026FBE0 var_2FF4        = dword ptr -2FF4h
.text:0026FBE0 var_1054        = byte ptr -1054h
.text:0026FBE0 var_55          = byte ptr -55h
.text:0026FBE0 var_54          = byte ptr -54h
.text:0026FBE0 var_34          = dword ptr -34h
.text:0026FBE0 var_2C          = dword ptr -2Ch
.text:0026FBE0 var_20          = dword ptr -20h
.text:0026FBE0 var_18          = dword ptr -18h
.text:0026FBE0 var_10          = dword ptr -10h
.text:0026FBE0 arg_4           = dword ptr  0Ch
.text:0026FBE0 arg_8           = dword ptr  10h
.text:0026FBE0 arg_C           = dword ptr  14h
.text:0026FBE0 arg_10          = dword ptr  18h
.text:0026FBE0 arg_14          = dword ptr  1Ch
.text:0026FBE0 arg_18          = dword ptr  20h
.text:0026FBE0
.text:0026FBE0                 push    ebp
.text:0026FBE1                 mov     ebp, esp
.text:0026FBE3                 sub     esp, 2FF4h
.text:0026FBE9                 push    ebx
.text:0026FBEA                 push    esi
.text:0026FBEB                 push    edi
.text:0026FBEC                 pusha
.text:0026FBED                 mov     al, byte_5E59A8
.text:0026FBF2                 test    al, al
.text:0026FBF4                 jz      short loc_26FC03
.text:0026FBF6                 push    offset OutputString ; "Reentrant assertion!!!\n"
.text:0026FBFB                 call    _OutputDebugStringA@4 ; OutputDebugStringA(x)
.text:0026FC00                 int     3               ; Trap to Debugger
.text:0026FC01
.text:0026FC01 loc_26FC01:                             ; CODE XREF: sub_26FBE0:loc_26FC01j
.text:0026FC01                 jmp     short loc_26FC01
.text:0026FC03 ; ---------------------------------------------------------------------------
.text:0026FC03
.text:0026FC03 loc_26FC03:                             ; CODE XREF: sub_26FBE0+14j
.text:0026FC03                 mov     eax, [ebp+arg_14]
.text:0026FC06                 test    eax, eax
.text:0026FC08                 mov     byte_5E59A8, 1
.text:0026FC0F                 mov     [ebp+var_55], 0
.text:0026FC13                 jnz     loc_26FE12
.text:0026FC19                 mov     ecx, offset byte_487235
.text:0026FC1E                 mov     eax, ecx
.text:0026FC20
.text:0026FC20 loc_26FC20:                             ; CODE XREF: sub_26FBE0+237j
.text:0026FC20                 mov     esi, [ebp+arg_C]
.text:0026FC23                 push    ecx
.text:0026FC24                 push    eax
.text:0026FC25                 mov     eax, [ebp+arg_4]
.text:0026FC28                 push    eax
.text:0026FC29                 push    esi
.text:0026FC2A                 call    sub_265046
.text:0026FC2F                 mov     edi, [ebp+arg_10]
.text:0026FC32                 mov     ebx, [ebp+arg_8]
.text:0026FC35                 push    eax
.text:0026FC36                 push    edi
.text:0026FC37                 push    ebx
.text:0026FC38                 push    offset a@SDTickDFuncti ; "@%s(%d) :(Tick %d):  Function: %s: Asse"...
.text:0026FC3D                 lea     ecx, [ebp+var_1054]
.text:0026FC43                 push    0FFFh           ; size_t
.text:0026FC48                 push    ecx             ; char *
.text:0026FC49                 call    __snprintf
.text:0026FC4E                 add     esp, 28h
.text:0026FC51                 push    1FA0h
.text:0026FC56                 lea     edx, [ebp+var_2FF4]
.text:0026FC5C                 push    edx
.text:0026FC5D                 lea     ecx, [ebp+var_34]
.text:0026FC60                 call    sub_2C310
.text:0026FC65                 mov     eax, [ebp+arg_14]
.text:0026FC68                 test    eax, eax
.text:0026FC6A                 mov     [ebp+arg_14], offset byte_487235
.text:0026FC71                 jz      short loc_26FC76
.text:0026FC73                 mov     [ebp+arg_14], eax
.text:0026FC76
.text:0026FC76 loc_26FC76:                             ; CODE XREF: sub_26FBE0+91j
.text:0026FC76                 mov     eax, [ebp+var_34]
.text:0026FC79                 push    offset aAssertionFailu ; "Assertion Failure\n\n     "
.text:0026FC7E                 lea     ecx, [ebp+var_34]
.text:0026FC81                 call    dword ptr [eax+34h]
.text:0026FC84                 mov     ecx, [ebp+arg_4]
.text:0026FC87                 mov     edx, [ebp+var_34]
.text:0026FC8A                 push    ecx
.text:0026FC8B                 lea     ecx, [ebp+var_34]
.text:0026FC8E                 call    dword ptr [edx+34h]
.text:0026FC91                 mov     eax, [ebp+var_34]
.text:0026FC94                 push    offset dword_4AA3B8
.text:0026FC99                 lea     ecx, [ebp+var_34]
.text:0026FC9C                 call    dword ptr [eax+34h]
.text:0026FC9F                 mov     ecx, [ebp+arg_14]
.text:0026FCA2                 mov     edx, [ebp+var_34]
.text:0026FCA5                 push    ecx
.text:0026FCA6                 lea     ecx, [ebp+var_34]
.text:0026FCA9                 call    dword ptr [edx+34h]
.text:0026FCAC                 mov     eax, [ebp+var_34]
.text:0026FCAF                 push    offset aFile_1  ; "\n\nFile: "
.text:0026FCB4                 lea     ecx, [ebp+var_34]
.text:0026FCB7                 call    dword ptr [eax+34h]
.text:0026FCBA                 mov     edx, [ebp+var_34]
.text:0026FCBD                 push    ebx
.text:0026FCBE                 lea     ecx, [ebp+var_34]
.text:0026FCC1                 call    dword ptr [edx+34h]
.text:0026FCC4                 mov     eax, [ebp+var_34]
.text:0026FCC7                 push    offset aFunction ; "\nFunction:"
.text:0026FCCC                 lea     ecx, [ebp+var_34]
.text:0026FCCF                 call    dword ptr [eax+34h]
.text:0026FCD2                 mov     edx, [ebp+var_34]
.text:0026FCD5                 push    esi
.text:0026FCD6                 lea     ecx, [ebp+var_34]
.text:0026FCD9                 call    dword ptr [edx+34h]
.text:0026FCDC                 mov     eax, [ebp+var_34]
.text:0026FCDF                 push    offset aLine_0  ; "\nLine:"
.text:0026FCE4                 lea     ecx, [ebp+var_34]
.text:0026FCE7                 call    dword ptr [eax+34h]
.text:0026FCEA                 mov     ecx, [ebp+var_20]
.text:0026FCED                 push    edi
.text:0026FCEE                 push    ecx             ; char *
.text:0026FCEF                 lea     edx, [ebp+var_54]
.text:0026FCF2                 push    edx             ; char *
.text:0026FCF3                 call    _sprintf
.text:0026FCF8                 mov     edx, [ebp+var_34]
.text:0026FCFB                 add     esp, 0Ch
.text:0026FCFE                 lea     eax, [ebp+var_54]
.text:0026FD01                 push    eax
.text:0026FD02                 lea     ecx, [ebp+var_34]
.text:0026FD05                 call    dword ptr [edx+34h]
.text:0026FD08                 mov     eax, [ebp+var_34]
.text:0026FD0B                 push    offset aVersion ; "\nVersion:"
.text:0026FD10                 lea     ecx, [ebp+var_34]
.text:0026FD13                 call    dword ptr [eax+34h]
.text:0026FD16                 mov     edx, [ebp+var_34]
.text:0026FD19                 push    offset a1_05_03_28_598 ; "1.05.03.28.59858"
.text:0026FD1E                 lea     ecx, [ebp+var_34]
.text:0026FD21                 call    dword ptr [edx+34h]
.text:0026FD24                 mov     eax, [ebp+var_34]
.text:0026FD27                 push    offset dword_487878
.text:0026FD2C                 lea     ecx, [ebp+var_34]
.text:0026FD2F                 call    dword ptr [eax+34h]
.text:0026FD32                 mov     edx, [ebp+var_34]
.text:0026FD35                 push    offset aFinalBuild ; "FINAL Build"
.text:0026FD3A                 lea     ecx, [ebp+var_34]
.text:0026FD3D                 call    dword ptr [edx+34h]
.text:0026FD40                 mov     edx, [ebp+var_34]
.text:0026FD43                 lea     eax, [ebp+arg_14+2]
.text:0026FD46                 push    eax
.text:0026FD47                 lea     ecx, [ebp+var_34]
.text:0026FD4A                 mov     byte ptr [ebp+arg_14+2], 0
.text:0026FD4E                 mov     byte ptr [ebp+arg_14+3], 0
.text:0026FD52                 call    dword ptr [edx+34h]
.text:0026FD55                 mov     eax, [ebp+var_34]
.text:0026FD58                 push    offset dword_487878
.text:0026FD5D                 lea     ecx, [ebp+var_34]
.text:0026FD60                 call    dword ptr [eax+34h]
.text:0026FD63                 mov     esi, offset off_48A848
.text:0026FD68                 lea     ecx, [ebp+var_10]
.text:0026FD6B                 mov     [ebp+var_18], esi
.text:0026FD6E                 call    sub_270690
.text:0026FD73                 lea     ecx, [ebp+var_2C]
.text:0026FD76                 mov     [ebp+var_34], esi
.text:0026FD79                 call    sub_270690
.text:0026FD7E                 mov     esi, [ebp+arg_18]
.text:0026FD81                 and     esi, 1
.text:0026FD84                 jnz     short loc_26FDC4
.text:0026FD86                 mov     ecx, off_56F604
.text:0026FD8C                 mov     edx, off_56F694
.text:0026FD92                 push    ecx
.text:0026FD93                 mov     ecx, offset off_56F694
.text:0026FD98                 call    dword ptr [edx+34h]
.text:0026FD9B                 mov     edx, off_56F694
.text:0026FDA1                 lea     eax, [ebp+var_2FF4]
.text:0026FDA7                 push    eax
.text:0026FDA8                 mov     ecx, offset off_56F694
.text:0026FDAD                 call    dword ptr [edx+34h]
.text:0026FDB0                 mov     eax, off_56F608
.text:0026FDB5                 mov     edx, off_56F694
.text:0026FDBB                 push    eax
.text:0026FDBC                 mov     ecx, offset off_56F694
.text:0026FDC1                 call    dword ptr [edx+34h]
.text:0026FDC4
.text:0026FDC4 loc_26FDC4:                             ; CODE XREF: sub_26FBE0+1A4j
.text:0026FDC4                 test    esi, esi
.text:0026FDC6                 jz      loc_26FF0E
.text:0026FDCC                 call    nullsub_4
.text:0026FDD1                 mov     eax, dword_5E4ED8
.text:0026FDD6                 test    eax, eax
.text:0026FDD8                 jz      short loc_26FDDC
.text:0026FDDA                 call    eax
.text:0026FDDC
.text:0026FDDC loc_26FDDC:                             ; CODE XREF: sub_26FBE0+1F8j
.text:0026FDDC                 mov     eax, dword_56F600
.text:0026FDE1                 cmp     eax, 1
.text:0026FDE4                 jnz     short loc_26FE1C
.text:0026FDE6                 mov     eax, off_56F694
.text:0026FDEB                 push    offset aAssertionReboo ; "Assertion Rebooting Forza\n"
.text:0026FDF0                 mov     ecx, offset off_56F694
.text:0026FDF5                 call    dword ptr [eax+34h]
.text:0026FDF8                 push    0
.text:0026FDFA                 mov     ecx, offset dword_58B630
.text:0026FDFF                 call    sub_5D710
.text:0026FE04                 mov     byte_5E59A8, 0
.text:0026FE0B                 pop     edi
.text:0026FE0C                 pop     esi
.text:0026FE0D                 pop     ebx
.text:0026FE0E                 mov     esp, ebp
.text:0026FE10                 pop     ebp
.text:0026FE11                 retn
.text:0026FE12 ; ---------------------------------------------------------------------------
.text:0026FE12
.text:0026FE12 loc_26FE12:                             ; CODE XREF: sub_26FBE0+33j
.text:0026FE12                 mov     ecx, offset dword_487878
.text:0026FE17                 jmp     loc_26FC20
.text:0026FE1C ; ---------------------------------------------------------------------------
.text:0026FE1C
.text:0026FE1C loc_26FE1C:                             ; CODE XREF: sub_26FBE0+204j
.text:0026FE1C                 test    eax, eax
.text:0026FE1E                 jnz     loc_26FF0E
.text:0026FE24                 call    _GetCurrentThreadId@0 ; GetCurrentThreadId()
.text:0026FE29                 cmp     dword_5E4ED4, eax
.text:0026FE2F                 jz      short loc_26FE71
.text:0026FE31                 mov     edx, off_56F694
.text:0026FE37                 push    offset aAssertionInAno ; "Assertion in another thread: "
.text:0026FE3C                 mov     ecx, offset off_56F694
.text:0026FE41                 call    dword ptr [edx+34h]
.text:0026FE44                 mov     eax, [ebp+arg_4]
.text:0026FE47                 mov     edx, off_56F694
.text:0026FE4D                 push    eax
.text:0026FE4E                 mov     ecx, offset off_56F694
.text:0026FE53                 call    dword ptr [edx+34h]
.text:0026FE56                 mov     edx, off_56F694
.text:0026FE5C                 mov     byte ptr [ebp+arg_14+2], 0Ah
.text:0026FE60                 mov     byte ptr [ebp+arg_14+3], 0
.text:0026FE64                 lea     eax, [ebp+arg_14+2]
.text:0026FE67                 mov     ecx, offset off_56F694
.text:0026FE6C                 jmp     loc_26FF0A
.text:0026FE71 ; ---------------------------------------------------------------------------
.text:0026FE71
.text:0026FE71 loc_26FE71:                             ; CODE XREF: sub_26FBE0+24Fj
.text:0026FE71                 push    0
.text:0026FE73                 push    3F800000h
.text:0026FE78                 push    0FFFFFFFFh
.text:0026FE7A                 push    0F3h
.text:0026FE7F                 push    0
.text:0026FE81                 push    0
.text:0026FE83                 call    sub_1DAE90
.text:0026FE88                 movss   xmm0, dword_56F650
.text:0026FE90                 push    0
.text:0026FE92                 push    3F800000h
.text:0026FE97                 push    0FF0000FFh
.text:0026FE9C                 push    0F3h
.text:0026FEA1                 movss   dword_56F648, xmm0
.text:0026FEA9                 movss   xmm0, dword_56F654
.text:0026FEB1                 push    0
.text:0026FEB3                 push    0
.text:0026FEB5                 mov     dword_56F658, 0FF808000h
.text:0026FEBF                 movss   dword_56F64C, xmm0
.text:0026FEC7                 call    sub_1DAE90
.text:0026FECC                 movss   xmm0, dword_56F650
.text:0026FED4                 mov     edx, off_56F628
.text:0026FEDA                 movss   dword_56F648, xmm0
.text:0026FEE2                 movss   xmm0, dword_56F654
.text:0026FEEA                 add     esp, 30h
.text:0026FEED                 movss   dword_56F64C, xmm0
.text:0026FEF5                 mov     dword_56F658, 0FFFFFFFFh
.text:0026FEFF                 lea     eax, [ebp+var_2FF4]
.text:0026FF05                 mov     ecx, offset off_56F628
.text:0026FF0A
.text:0026FF0A loc_26FF0A:                             ; CODE XREF: sub_26FBE0+28Cj
.text:0026FF0A                 push    eax
.text:0026FF0B                 call    dword ptr [edx+34h]
.text:0026FF0E
.text:0026FF0E loc_26FF0E:                             ; CODE XREF: sub_26FBE0+1E6j
.text:0026FF0E                                         ; sub_26FBE0+23Ej
.text:0026FF0E                 popa
.text:0026FF0F                 pop     edi
.text:0026FF10                 pop     esi
.text:0026FF11                 mov     byte_5E59A8, 0
.text:0026FF18                 pop     ebx
.text:0026FF19                 mov     esp, ebp
.text:0026FF1B                 pop     ebp
.text:0026FF1C                 retn
.text:0026FF1C sub_26FBE0      endp
.text:0026FF1C
.text:0026FF1C ; ---------------------------------------------------------------------------
.text:0026FF1D                 align 10h
.text:0026FF20
.text:0026FF20 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026FF20
.text:0026FF20
.text:0026FF20 sub_26FF20      proc near               ; CODE XREF: sub_17520+2Dp
.text:0026FF20                                         ; sub_1D9C0+7Fp ...
.text:0026FF20
.text:0026FF20 arg_0           = dword ptr  4
.text:0026FF20 arg_4           = dword ptr  8
.text:0026FF20 arg_8           = dword ptr  0Ch
.text:0026FF20 arg_C           = dword ptr  10h
.text:0026FF20 arg_10          = dword ptr  14h
.text:0026FF20 arg_14          = dword ptr  18h
.text:0026FF20
.text:0026FF20                 mov     eax, [esp+arg_14]
.text:0026FF24                 mov     ecx, [esp+arg_10]
.text:0026FF28                 mov     edx, [esp+arg_C]
.text:0026FF2C                 push    eax
.text:0026FF2D                 mov     eax, [esp+4+arg_8]
.text:0026FF31                 push    ecx
.text:0026FF32                 mov     ecx, [esp+8+arg_4]
.text:0026FF36                 push    edx
.text:0026FF37                 mov     edx, [esp+0Ch+arg_0]
.text:0026FF3B                 push    eax
.text:0026FF3C                 push    ecx
.text:0026FF3D                 push    edx
.text:0026FF3E                 push    offset aAssert  ; "Assert"
.text:0026FF43                 call    sub_26FBE0
.text:0026FF48                 add     esp, 1Ch
.text:0026FF4B                 retn
.text:0026FF4B sub_26FF20      endp
.text:0026FF4B
.text:0026FF4B ; ---------------------------------------------------------------------------
.text:0026FF4C                 align 10h
.text:0026FF50                 mov     eax, [esp+4]
.text:0026FF54                 push    esi
.text:0026FF55                 mov     esi, [esp+0Ch]
.text:0026FF59                 push    esi
.text:0026FF5A                 push    eax
.text:0026FF5B                 call    sub_26FF70
.text:0026FF60                 mov     eax, esi
.text:0026FF62                 pop     esi
.text:0026FF63                 retn    8
.text:0026FF63 ; ---------------------------------------------------------------------------
.text:0026FF66                 align 10h
.text:0026FF70
.text:0026FF70 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:0026FF70
.text:0026FF70
.text:0026FF70 sub_26FF70      proc near               ; CODE XREF: .text:0026FF5Bp
.text:0026FF70
.text:0026FF70 var_220         = dword ptr -220h
.text:0026FF70 var_210         = dword ptr -210h
.text:0026FF70 var_20C         = dword ptr -20Ch
.text:0026FF70 var_208         = dword ptr -208h
.text:0026FF70 var_204         = dword ptr -204h
.text:0026FF70 var_200         = dword ptr -200h
.text:0026FF70 arg_0           = dword ptr  4
.text:0026FF70 arg_4           = dword ptr  8
.text:0026FF70
.text:0026FF70                 sub     esp, 210h
.text:0026FF76                 mov     eax, [esp+210h+arg_4]
.text:0026FF7D                 push    esi
.text:0026FF7E                 push    edi
.text:0026FF7F                 xor     edx, edx
.text:0026FF81                 xor     edi, edi
.text:0026FF83                 test    eax, eax
.text:0026FF85                 mov     esi, ecx
.text:0026FF87                 mov     [esp+218h+var_208], edx
.text:0026FF8B                 jl      loc_2700BC
.text:0026FF91                 push    ebx
.text:0026FF92                 mov     ebx, [esp+21Ch+arg_0]
.text:0026FF99                 mov     eax, 1
.text:0026FF9E                 sub     eax, ebx
.text:0026FFA0                 push    ebp
.text:0026FFA1                 mov     ebp, ebx
.text:0026FFA3                 mov     [esp+220h+var_20C], eax
.text:0026FFA7                 jmp     short loc_26FFB0
.text:0026FFA7 ; ---------------------------------------------------------------------------
.text:0026FFA9                 align 10h
.text:0026FFB0
.text:0026FFB0 loc_26FFB0:                             ; CODE XREF: sub_26FF70+37j
.text:0026FFB0                                         ; sub_26FF70+DFj
.text:0026FFB0                 mov     al, [ebp+0]
.text:0026FFB3                 test    al, al
.text:0026FFB5                 jz      loc_270062
.text:0026FFBB                 cmp     al, 0Ah
.text:0026FFBD                 jnz     loc_270040
.text:0026FFC3                 movss   xmm0, dword ptr [esi+24h]
.text:0026FFC8                 movss   [esp+220h+var_204], xmm0
.text:0026FFCE                 movss   xmm0, dword ptr [esi+20h]
.text:0026FFD3                 movss   [esp+220h+var_210], xmm0
.text:0026FFD9                 xor     eax, eax
.text:0026FFDB                 mov     ecx, edi
.text:0026FFDD                 lea     ecx, [ecx+0]
.text:0026FFE0
.text:0026FFE0 loc_26FFE0:                             ; CODE XREF: sub_26FF70+85j
.text:0026FFE0                 cmp     ecx, edx
.text:0026FFE2                 jge     short loc_26FFF7
.text:0026FFE4                 movsx   di, byte ptr [ecx+ebx]
.text:0026FFE9                 mov     word ptr [esp+eax*2+220h+var_200], di
.text:0026FFEE                 inc     eax
.text:0026FFEF                 inc     ecx
.text:0026FFF0                 cmp     eax, 0FFh
.text:0026FFF5                 jl      short loc_26FFE0
.text:0026FFF7
.text:0026FFF7 loc_26FFF7:                             ; CODE XREF: sub_26FF70+72j
.text:0026FFF7                 mov     ecx, [esp+220h+var_204]
.text:0026FFFB                 mov     edx, [esp+220h+var_210]
.text:0026FFFF                 mov     word ptr [esp+eax*2+220h+var_200], 0
.text:00270006                 lea     eax, [esp+220h+var_200]
.text:0027000A                 push    eax
.text:0027000B                 push    ecx
.text:0027000C                 push    edx
.text:0027000D                 mov     ecx, esi
.text:0027000F                 call    sub_2700D0
.text:00270014                 fstp    st
.text:00270016                 mov     eax, [esp+220h+var_20C]
.text:0027001A                 mov     ecx, [esi+28h]
.text:0027001D                 lea     edi, [eax+ebp]
.text:00270020                 mov     eax, [esi+1Ch]
.text:00270023                 mov     [esi+20h], ecx
.text:00270026                 test    eax, eax
.text:00270028                 cmovz   eax, dword_5892B0
.text:0027002F                 mov     ecx, eax
.text:00270031                 call    sub_2768D0
.text:00270036                 fadd    dword ptr [esi+24h]
.text:00270039                 mov     edx, [esp+220h+var_208]
.text:0027003D                 fstp    dword ptr [esi+24h]
.text:00270040
.text:00270040 loc_270040:                             ; CODE XREF: sub_26FF70+4Dj
.text:00270040                 mov     eax, [esp+220h+arg_4]
.text:00270047                 inc     edx
.text:00270048                 inc     ebp
.text:00270049                 cmp     edx, eax
.text:0027004B                 mov     [esp+220h+var_208], edx
.text:0027004F                 jle     loc_26FFB0
.text:00270055                 pop     ebp
.text:00270056                 pop     ebx
.text:00270057                 pop     edi
.text:00270058                 pop     esi
.text:00270059                 add     esp, 210h
.text:0027005F                 retn    8
.text:00270062 ; ---------------------------------------------------------------------------
.text:00270062
.text:00270062 loc_270062:                             ; CODE XREF: sub_26FF70+45j
.text:00270062                 movss   xmm0, dword ptr [esi+24h]
.text:00270067                 movss   [esp+220h+var_20C], xmm0
.text:0027006D                 movss   xmm0, dword ptr [esi+20h]
.text:00270072                 movss   [esp+220h+var_210], xmm0
.text:00270078                 xor     eax, eax
.text:0027007A                 mov     ecx, edi
.text:0027007C                 lea     esp, [esp+0]
.text:00270080
.text:00270080 loc_270080:                             ; CODE XREF: sub_26FF70+125j
.text:00270080                 cmp     ecx, edx
.text:00270082                 jge     short loc_270097
.text:00270084                 movsx   di, byte ptr [ecx+ebx]
.text:00270089                 mov     word ptr [esp+eax*2+220h+var_200], di
.text:0027008E                 inc     eax
.text:0027008F                 inc     ecx
.text:00270090                 cmp     eax, 0FFh
.text:00270095                 jl      short loc_270080
.text:00270097
.text:00270097 loc_270097:                             ; CODE XREF: sub_26FF70+112j
.text:00270097                 mov     ecx, [esp+220h+var_210]
.text:0027009B                 lea     edx, [esp+220h+var_200]
.text:0027009F                 mov     word ptr [esp+eax*2+220h+var_200], 0
.text:002700A6                 mov     eax, [esp+220h+var_20C]
.text:002700AA                 push    edx
.text:002700AB                 push    eax
.text:002700AC                 push    ecx
.text:002700AD                 mov     ecx, esi
.text:002700AF                 call    sub_2700D0
.text:002700B4                 fadd    dword ptr [esi+20h]
.text:002700B7                 pop     ebp
.text:002700B8                 pop     ebx
.text:002700B9                 fstp    dword ptr [esi+20h]
.text:002700BC
.text:002700BC loc_2700BC:                             ; CODE XREF: sub_26FF70+1Bj
.text:002700BC                 pop     edi
.text:002700BD                 pop     esi
.text:002700BE                 add     esp, 210h
.text:002700C4                 retn    8
.text:002700C4 sub_26FF70      endp
.text:002700C4
.text:002700C4 ; ---------------------------------------------------------------------------
.text:002700C7                 align 10h
.text:002700D0
.text:002700D0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002700D0
.text:002700D0
.text:002700D0 sub_2700D0      proc near               ; CODE XREF: sub_26FF70+9Fp
.text:002700D0                                         ; sub_26FF70+13Fp
.text:002700D0
.text:002700D0 arg_0           = dword ptr  4
.text:002700D0 arg_4           = dword ptr  8
.text:002700D0 arg_8           = dword ptr  0Ch
.text:002700D0
.text:002700D0                 mov     edx, [esp+arg_4]
.text:002700D4                 push    esi
.text:002700D5                 push    edi
.text:002700D6                 mov     edi, [esp+8+arg_8]
.text:002700DA                 push    0
.text:002700DC                 push    0
.text:002700DE                 mov     esi, ecx
.text:002700E0                 mov     eax, [esi+30h]
.text:002700E3                 mov     ecx, [esi+1Ch]
.text:002700E6                 push    edi
.text:002700E7                 push    eax
.text:002700E8                 mov     eax, [esp+18h+arg_0]
.text:002700EC                 push    edx
.text:002700ED                 test    ecx, ecx
.text:002700EF                 cmovz   ecx, dword_5892B0
.text:002700F6                 push    eax
.text:002700F7                 call    sub_278BE0
.text:002700FC                 mov     esi, [esi+1Ch]
.text:002700FF                 push    0FFFFFFFFh
.text:00270101                 push    0
.text:00270103                 lea     edx, [esp+10h+arg_4]
.text:00270107                 push    edx
.text:00270108                 lea     eax, [esp+14h+arg_8]
.text:0027010C                 push    eax
.text:0027010D                 test    esi, esi
.text:0027010F                 mov     ecx, esi
.text:00270111                 cmovz   ecx, dword_5892B0
.text:00270118                 push    edi
.text:00270119                 call    sub_2788E0
.text:0027011E                 fld     [esp+8+arg_8]
.text:00270122                 pop     edi
.text:00270123                 pop     esi
.text:00270124                 retn    0Ch
.text:00270124 sub_2700D0      endp
.text:00270124
.text:00270124 ; ---------------------------------------------------------------------------
.text:00270127                 align 10h
.text:00270130
.text:00270130 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00270130
.text:00270130
.text:00270130 sub_270130      proc near               ; CODE XREF: sub_52D40+19p
.text:00270130                                         ; sub_53EB0+419p ...
.text:00270130
.text:00270130 arg_0           = dword ptr  4
.text:00270130
.text:00270130                 mov     ecx, [esp+arg_0]
.text:00270134                 push    esi
.text:00270135                 mov     eax, ecx
.text:00270137                 push    edi
.text:00270138                 xor     edi, edi
.text:0027013A                 lea     esi, [eax+1]
.text:0027013D                 lea     ecx, [ecx+0]
.text:00270140
.text:00270140 loc_270140:                             ; CODE XREF: sub_270130+15j
.text:00270140                 mov     dl, [eax]
.text:00270142                 inc     eax
.text:00270143                 test    dl, dl
.text:00270145                 jnz     short loc_270140
.text:00270147                 sub     eax, esi
.text:00270149                 mov     esi, offset byte_5E59B0
.text:0027014E                 sub     esi, ecx
.text:00270150
.text:00270150 loc_270150:                             ; CODE XREF: sub_270130+28j
.text:00270150                 mov     dl, [ecx]
.text:00270152                 mov     [esi+ecx], dl
.text:00270155                 inc     ecx
.text:00270156                 test    dl, dl
.text:00270158                 jnz     short loc_270150
.text:0027015A                 mov     cl, byte ptr (dword_5E59AC+3)[eax]
.text:00270160                 cmp     cl, 30h
.text:00270163                 lea     esi, (dword_5E59AC+3)[eax]
.text:00270169                 jl      short loc_270186
.text:0027016B                 jmp     short loc_270170
.text:0027016B ; ---------------------------------------------------------------------------
.text:0027016D                 align 10h
.text:00270170
.text:00270170 loc_270170:                             ; CODE XREF: sub_270130+3Bj
.text:00270170                                         ; sub_270130+54j
.text:00270170                 cmp     cl, 39h
.text:00270173                 jg      short loc_270186
.text:00270175                 cmp     esi, 5E59B0h
.text:0027017B                 jz      short loc_270186
.text:0027017D                 mov     cl, [esi-1]
.text:00270180                 dec     esi
.text:00270181                 cmp     cl, 30h
.text:00270184                 jge     short loc_270170
.text:00270186
.text:00270186 loc_270186:                             ; CODE XREF: sub_270130+39j
.text:00270186                                         ; sub_270130+43j ...
.text:00270186                 lea     eax, (dword_5E59AC+3)[eax]
.text:0027018C                 cmp     esi, eax
.text:0027018E                 jnb     short loc_2701A7
.text:00270190                 inc     esi
.text:00270191                 push    esi             ; char *
.text:00270192                 call    j__atol
.text:00270197                 cdq
.text:00270198                 mov     ecx, 0FFh
.text:0027019D                 add     esp, 4
.text:002701A0                 idiv    ecx
.text:002701A2                 mov     byte ptr [esi], 0
.text:002701A5                 mov     edi, edx
.text:002701A7
.text:002701A7 loc_2701A7:                             ; CODE XREF: sub_270130+5Ej
.text:002701A7                 mov     dl, byte_5E59B0
.text:002701AD                 xor     eax, eax
.text:002701AF                 test    dl, dl
.text:002701B1                 mov     ecx, 5E59B0h
.text:002701B6                 jz      short loc_2701DE
.text:002701B8
.text:002701B8 loc_2701B8:                             ; CODE XREF: sub_270130+ACj
.text:002701B8                 shl     eax, 8
.text:002701BB                 mov     edx, eax
.text:002701BD                 mov     al, [ecx]
.text:002701BF                 inc     ecx
.text:002701C0                 cmp     al, 61h
.text:002701C2                 jl      short loc_2701CA
.text:002701C4                 cmp     al, 7Ah
.text:002701C6                 jg      short loc_2701CA
.text:002701C8                 add     al, 0E0h
.text:002701CA
.text:002701CA loc_2701CA:                             ; CODE XREF: sub_270130+92j
.text:002701CA                                         ; sub_270130+96j
.text:002701CA                 movsx   eax, al
.text:002701CD                 add     eax, edx
.text:002701CF                 cdq
.text:002701D0                 mov     esi, 0FFFFFDh
.text:002701D5                 idiv    esi
.text:002701D7                 mov     eax, edx
.text:002701D9                 cmp     byte ptr [ecx], 0
.text:002701DC                 jnz     short loc_2701B8
.text:002701DE
.text:002701DE loc_2701DE:                             ; CODE XREF: sub_270130+86j
.text:002701DE                 shl     eax, 8
.text:002701E1                 add     eax, edi
.text:002701E3                 pop     edi
.text:002701E4                 pop     esi
.text:002701E5                 retn
.text:002701E5 sub_270130      endp
.text:002701E5
.text:002701E5 ; ---------------------------------------------------------------------------
.text:002701E6                 align 10h
.text:002701F0
.text:002701F0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002701F0
.text:002701F0
.text:002701F0 sub_2701F0      proc near               ; CODE XREF: sub_52D40+2Cp
.text:002701F0                                         ; sub_218310+2D6p
.text:002701F0
.text:002701F0 arg_0           = dword ptr  4
.text:002701F0
.text:002701F0                 mov     ecx, [esp+arg_0]
.text:002701F4                 push    esi
.text:002701F5                 mov     eax, ecx
.text:002701F7                 push    edi
.text:002701F8                 xor     edi, edi
.text:002701FA                 lea     esi, [eax+1]
.text:002701FD                 lea     ecx, [ecx+0]
.text:00270200
.text:00270200 loc_270200:                             ; CODE XREF: sub_2701F0+15j
.text:00270200                 mov     dl, [eax]
.text:00270202                 inc     eax
.text:00270203                 test    dl, dl
.text:00270205                 jnz     short loc_270200
.text:00270207                 sub     eax, esi
.text:00270209                 mov     esi, (offset dword_5E5AAF+1)
.text:0027020E                 sub     esi, ecx
.text:00270210
.text:00270210 loc_270210:                             ; CODE XREF: sub_2701F0+28j
.text:00270210                 mov     dl, [ecx]
.text:00270212                 mov     [esi+ecx], dl
.text:00270215                 inc     ecx
.text:00270216                 test    dl, dl
.text:00270218                 jnz     short loc_270210
.text:0027021A                 mov     cl, byte ptr dword_5E5AAF[eax]
.text:00270220                 cmp     cl, 30h
.text:00270223                 lea     esi, dword_5E5AAF[eax]
.text:00270229                 jl      short loc_270246
.text:0027022B                 jmp     short loc_270230
.text:0027022B ; ---------------------------------------------------------------------------
.text:0027022D                 align 10h
.text:00270230
.text:00270230 loc_270230:                             ; CODE XREF: sub_2701F0+3Bj
.text:00270230                                         ; sub_2701F0+54j
.text:00270230                 cmp     cl, 39h
.text:00270233                 jg      short loc_270246
.text:00270235                 cmp     esi, 5E5AB0h
.text:0027023B                 jz      short loc_270246
.text:0027023D                 mov     cl, [esi-1]
.text:00270240                 dec     esi
.text:00270241                 cmp     cl, 30h
.text:00270244                 jge     short loc_270230
.text:00270246
.text:00270246 loc_270246:                             ; CODE XREF: sub_2701F0+39j
.text:00270246                                         ; sub_2701F0+43j ...
.text:00270246                 lea     eax, dword_5E5AAF[eax]
.text:0027024C                 cmp     esi, eax
.text:0027024E                 jnb     short loc_270267
.text:00270250                 inc     esi
.text:00270251                 push    esi             ; char *
.text:00270252                 call    j__atol
.text:00270257                 cdq
.text:00270258                 mov     ecx, 0FFh
.text:0027025D                 add     esp, 4
.text:00270260                 idiv    ecx
.text:00270262                 mov     byte ptr [esi], 0
.text:00270265                 mov     edi, edx
.text:00270267
.text:00270267 loc_270267:                             ; CODE XREF: sub_2701F0+5Ej
.text:00270267                 movsx   eax, byte ptr dword_5E5AAF+1
.text:0027026E                 mov     cl, byte ptr dword_5E5AAF+3
.text:00270274                 imul    eax, 101h
.text:0027027A                 test    cl, cl
.text:0027027C                 mov     esi, 5E5AB2h
.text:00270281                 jz      short loc_27029D
.text:00270283                 push    ebx
.text:00270284
.text:00270284 loc_270284:                             ; CODE XREF: sub_2701F0+AAj
.text:00270284                 cdq
.text:00270285                 mov     ebx, 0FFFFFDh
.text:0027028A                 idiv    ebx
.text:0027028C                 movsx   eax, cl
.text:0027028F                 mov     cl, [esi+1]
.text:00270292                 shl     edx, 8
.text:00270295                 add     eax, edx
.text:00270297                 inc     esi
.text:00270298                 test    cl, cl
.text:0027029A                 jnz     short loc_270284
.text:0027029C                 pop     ebx
.text:0027029D
.text:0027029D loc_27029D:                             ; CODE XREF: sub_2701F0+91j
.text:0027029D                 shl     eax, 8
.text:002702A0                 add     eax, edi
.text:002702A2                 pop     edi
.text:002702A3                 pop     esi
.text:002702A4                 retn
.text:002702A4 sub_2701F0      endp
.text:002702A4
.text:002702A4 ; ---------------------------------------------------------------------------
.text:002702A5                 align 10h
.text:002702B0
.text:002702B0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002702B0
.text:002702B0
.text:002702B0 sub_2702B0      proc near               ; CODE XREF: sub_5ABB0+Fp
.text:002702B0                                         ; sub_5C090+68p ...
.text:002702B0
.text:002702B0 arg_0           = dword ptr  4
.text:002702B0
.text:002702B0                 mov     eax, ecx
.text:002702B2                 mov     ecx, [esp+arg_0]
.text:002702B6                 mov     edx, [ecx]
.text:002702B8                 mov     [eax], edx
.text:002702BA                 inc     dword ptr [edx+4]
.text:002702BD                 retn    4
.text:002702BD sub_2702B0      endp
.text:002702BD
.text:002702C0
.text:002702C0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002702C0
.text:002702C0
.text:002702C0 sub_2702C0      proc near               ; CODE XREF: sub_F0C40+9p
.text:002702C0                                         ; sub_F0C40+34p ...
.text:002702C0                 mov     eax, [ecx]
.text:002702C2                 mov     eax, [eax+8]
.text:002702C5                 retn
.text:002702C5 sub_2702C0      endp
.text:002702C5
.text:002702C5 ; ---------------------------------------------------------------------------
.text:002702C6                 align 10h
.text:002702D0
.text:002702D0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002702D0
.text:002702D0
.text:002702D0 sub_2702D0      proc near               ; CODE XREF: sub_9A7A0+E8p
.text:002702D0                                         ; sub_9AA60+151p ...
.text:002702D0                 mov     eax, [ecx]
.text:002702D2                 mov     eax, [eax]
.text:002702D4                 retn
.text:002702D4 sub_2702D0      endp
.text:002702D4
.text:002702D4 ; ---------------------------------------------------------------------------
.text:002702D5                 align 10h
.text:002702E0
.text:002702E0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002702E0
.text:002702E0
.text:002702E0 sub_2702E0      proc near               ; CODE XREF: sub_2134A0+130p
.text:002702E0                                         ; sub_213EF0+38Ap ...
.text:002702E0
.text:002702E0 arg_0           = dword ptr  8
.text:002702E0 arg_4           = dword ptr  0Ch
.text:002702E0
.text:002702E0                 push    esi
.text:002702E1                 mov     esi, [esp+arg_4]
.text:002702E5                 test    esi, esi
.text:002702E7                 jl      short loc_270323
.text:002702E9                 mov     edx, [ecx]
.text:002702EB                 cmp     esi, [edx+8]
.text:002702EE                 jg      short loc_270323
.text:002702F0                 push    ebx
.text:002702F1                 push    edi
.text:002702F2                 mov     edi, [esp+8+arg_0]
.text:002702F6                 mov     eax, edi
.text:002702F8                 lea     ebx, [eax+1]
.text:002702FB                 jmp     short loc_270300
.text:002702FB ; ---------------------------------------------------------------------------
.text:002702FD                 align 10h
.text:00270300
.text:00270300 loc_270300:                             ; CODE XREF: sub_2702E0+1Bj
.text:00270300                                         ; sub_2702E0+25j
.text:00270300                 mov     cl, [eax]
.text:00270302                 inc     eax
.text:00270303                 test    cl, cl
.text:00270305                 jnz     short loc_270300
.text:00270307                 mov     ecx, [edx]
.text:00270309                 sub     eax, ebx
.text:0027030B                 push    eax             ; size_t
.text:0027030C                 add     ecx, esi
.text:0027030E                 push    ecx             ; char *
.text:0027030F                 push    edi             ; char *
.text:00270310                 call    __strnicmp
.text:00270315                 add     esp, 0Ch
.text:00270318                 neg     eax
.text:0027031A                 pop     edi
.text:0027031B                 sbb     eax, eax
.text:0027031D                 pop     ebx
.text:0027031E                 inc     eax
.text:0027031F                 pop     esi
.text:00270320                 retn    8
.text:00270323 ; ---------------------------------------------------------------------------
.text:00270323
.text:00270323 loc_270323:                             ; CODE XREF: sub_2702E0+7j
.text:00270323                                         ; sub_2702E0+Ej
.text:00270323                 xor     al, al
.text:00270325                 pop     esi
.text:00270326                 retn    8
.text:00270326 sub_2702E0      endp
.text:00270326
.text:00270326 ; ---------------------------------------------------------------------------
.text:00270329                 align 10h
.text:00270330
.text:00270330 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:00270330
.text:00270330
.text:00270330 sub_270330      proc near               ; CODE XREF: sub_88F20+CFp
.text:00270330
.text:00270330 var_10          = dword ptr -10h
.text:00270330 arg_0           = dword ptr  4
.text:00270330 arg_4           = dword ptr  8
.text:00270330
.text:00270330                 mov     ecx, [esp+arg_4]
.text:00270334                 cmp     byte ptr [ecx], 0
.text:00270337                 mov     eax, [esp+arg_0]
.text:0027033B                 push    ebp
.text:0027033C                 mov     ebp, eax
.text:0027033E                 jz      short loc_2703A0
.text:00270340                 cmp     byte ptr [eax], 0
.text:00270343                 push    ebx
.text:00270344                 push    esi
.text:00270345                 push    edi
.text:00270346                 jz      short loc_27039B
.text:00270348                 sub     eax, ecx
.text:0027034A                 mov     edi, eax
.text:0027034C                 lea     esp, [esp+0]
.text:00270350
.text:00270350 loc_270350:                             ; CODE XREF: sub_270330+69j
.text:00270350                 cmp     byte ptr [ebp+0], 0
.text:00270354                 mov     esi, ecx
.text:00270356                 jz      short loc_27038D
.text:00270358
.text:00270358 loc_270358:                             ; CODE XREF: sub_270330+57j
.text:00270358                 mov     bl, [esi]
.text:0027035A                 test    bl, bl
.text:0027035C                 jz      short loc_2703A2
.text:0027035E                 movsx   eax, byte ptr [edi+esi]
.text:00270362                 push    eax             ; int
.text:00270363                 call    _tolower
.text:00270368                 movsx   ecx, bl
.text:0027036B                 push    ecx             ; int
.text:0027036C                 mov     [esp+18h+arg_0], eax
.text:00270370                 call    _tolower
.text:00270375                 mov     ecx, [esp+18h+arg_0]
.text:00270379                 add     esp, 8
.text:0027037C                 sub     ecx, eax
.text:0027037E                 jnz     short loc_270389
.text:00270380                 mov     al, [edi+esi+1]
.text:00270384                 inc     esi
.text:00270385                 test    al, al
.text:00270387                 jnz     short loc_270358
.text:00270389
.text:00270389 loc_270389:                             ; CODE XREF: sub_270330+4Ej
.text:00270389                 mov     ecx, [esp+10h+arg_4]
.text:0027038D
.text:0027038D loc_27038D:                             ; CODE XREF: sub_270330+26j
.text:0027038D                 cmp     byte ptr [esi], 0
.text:00270390                 jz      short loc_2703A2
.text:00270392                 mov     al, [ebp+1]
.text:00270395                 inc     ebp
.text:00270396                 inc     edi
.text:00270397                 test    al, al
.text:00270399                 jnz     short loc_270350
.text:0027039B
.text:0027039B loc_27039B:                             ; CODE XREF: sub_270330+16j
.text:0027039B                 pop     edi
.text:0027039C                 pop     esi
.text:0027039D                 xor     eax, eax
.text:0027039F                 pop     ebx
.text:002703A0
.text:002703A0 loc_2703A0:                             ; CODE XREF: sub_270330+Ej
.text:002703A0                 pop     ebp
.text:002703A1                 retn
.text:002703A2 ; ---------------------------------------------------------------------------
.text:002703A2
.text:002703A2 loc_2703A2:                             ; CODE XREF: sub_270330+2Cj
.text:002703A2                                         ; sub_270330+60j
.text:002703A2                 pop     edi
.text:002703A3                 pop     esi
.text:002703A4                 pop     ebx
.text:002703A5                 mov     eax, ebp
.text:002703A7                 pop     ebp
.text:002703A8                 retn
.text:002703A8 sub_270330      endp
.text:002703A8
.text:002703A8 ; ---------------------------------------------------------------------------
.text:002703A9                 align 10h
.text:002703B0
.text:002703B0 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:002703B0
.text:002703B0
.text:002703B0 sub_2703B0      proc near               ; CODE XREF: sub_2706B0+56p
.text:002703B0                 push    ebx
.text:002703B1                 push    esi
.text:002703B2                 mov     ebx, ecx
.text:002703B4                 push    ebx
.text:002703B5                 call    ds:dword_485D84
.text:002703BB                 push    10h
.text:002703BD                 call    sub_594D0
.text:002703C2                 xor     esi, esi
.text:002703C4                 add     esp, 4
.text:002703C7