Function at 0x496080
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x1f4
mov edx, dword [ebp + 8]
push ebx
push esi
xor esi, esi
cmp edx, esi
push edi
mov dword [esp + 0x34], ecx
jne 0x4960b2
cmp dword [ebp + 0xc], esi
jne 0x498b63
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ebx, 0xe
cmp dword [edx + 4], ebx
jne 0x498b63
mov eax, dword [edx + 0x18]
imul eax, dword [edx + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x6c], eax
mov eax, dword [edx + 0x24]
xor edi, edi
cmp eax, esi
mov ecx, 2
mov dword [esp + 0x64], edi
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x58], esi
je 0x49613a
cmp dword [eax + 4], ebx
jne 0x49613a
mov edi, dword [eax + 0x1c]
imul edi, dword [eax + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x64], edi
mov edx, dword [edx + 0x28]
cmp edx, esi
je 0x496151
cmp dword [edx + 4], ebx
jne 0x496151
mov esi, dword [edx + 0x1c]
imul esi, dword [edx + 0x18]
mov dword [esp + 0x58], edx
cmp edi, 0x100000
ja 0x496161
cmp esi, 0x100000
jbe 0x49616b
mov ebx, 0x80070057
jmp 0x498b20
mov edx, dword [esp + 0x64]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0xc0]
push ecx
mov ecx, 4
lea edi, [esi + edx*2]
push eax
lea esi, [ecx - 2]
call fcn.00482df0
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edi, dword [esp + 0xa0]
test edi, edi
mov eax, dword [esp + 0xbc]
je 0x4961c2
mov ecx, dword [esp + 0x64]
lea edx, [eax + ecx*4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x58]
test esi, esi
je 0x4961d5
mov ecx, dword [esp + 0x64]
lea edx, [eax + ecx*8]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
cmp eax, 0x1d
mov cl, byte [ebp + 0x10]
mov byte [esp + 0xb0], 0
mov byte [esp + 0x53], 0
mov byte [esp + 0x98], 0
ja case.0x4961ff.4
movzx eax, byte [eax + 0x498b88]
jmp dword [eax*4 + 0x498b74]
mov byte [esp + 0x98], 1
mov byte [esp + 0xb0], cl
jmp case.0x4961ff.4
mov byte [esp + 0x53], 1
mov byte [esp + 0xb0], cl
jmp case.0x4961ff.4
mov byte [esp + 0xb0], 1
cmp dword [edx + 0x2c], 0
je 0x4962a3
test edi, edi
mov esi, dword [esp + 0x34]
je 0x496262
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x40]
push ecx
push edx
push eax
push edi
mov ecx, esi
call fcn.00496080
mov ebx, eax
test ebx, ebx
jl 0x498b20
cmp byte [esp + 0x53], 0
je 0x496288
test edi, edi
je 0x496288
mov ecx, dword [esp + 0x3c]
push 0
push 1
push ecx
push edi
mov ecx, esi
call fcn.00496080
mov ebx, eax
test ebx, ebx
jl 0x498b20
cmp dword [esp + 0x58], 0
je 0x49631b
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
push 0
push 0
push edx
push eax
jmp 0x49630a
test esi, esi
mov esi, dword [esp + 0x34]
je 0x4962ca
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x58]
push 0
push 0
push ecx
push edx
mov ecx, esi
call fcn.00496080
mov ebx, eax
test ebx, ebx
jl 0x498b20
test edi, edi
je 0x4962f5
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x40]
push eax
push ecx
push edx
push edi
mov ecx, esi
call fcn.00496080
mov ebx, eax
test ebx, ebx
jl 0x498b20
cmp byte [esp + 0x53], 0
je 0x49631b
test edi, edi
je 0x49631b
mov eax, dword [esp + 0x3c]
push 0
push 1
push eax
push edi
mov ecx, esi
call fcn.00496080
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
xor edx, edx
cmp eax, 0x23
mov dword [esp + 0x54], edx
mov dword [esp + 0x98], edx
ja case.default.0x49633a
mov ebx, dword [ebp + 0xc]
jmp dword [eax*4 + 0x498ba8]
cmp edi, edx
je 0x496425
cmp ebx, edx
je 0x497cbf
mov ecx, dword [esp + 0x64]
cmp ecx, 1
jne 0x496381
xor eax, eax
cmp dword [esp + 0x38], eax
jbe 0x497cbf
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov ecx, ebx
mov edi, dword [edx]
mov dword [ecx + eax*4], edi
add eax, 1
cmp eax, esi
jb 0x496370
jmp 0x497cbf
mov edx, dword [esp + 0x38]
cmp edx, ecx
je 0x496408
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
cmp eax, 1
jne 0x49639c
cmp edx, ecx
jb 0x496408
mov ecx, dword [esp + 0xa0]
cmp eax, dword [ecx + 0x18]
ja 0x4963fc
mov edx, dword [esi + 0x1c]
cmp edx, dword [ecx + 0x1c]
ja 0x4963fc
xor esi, esi
test eax, eax
jbe 0x497cbf
mov edi, dword [ebp + 8]
lea ecx, [ecx]
mov eax, dword [edi + 0x1c]
mov edx, dword [esp + 0xa0]
lea ecx, [eax*4]
imul eax, esi
push ecx
mov ecx, dword [edx + 0x1c]
mov edx, dword [esp + 0x44]
imul ecx, esi
lea ecx, [edx + ecx*4]
push ecx
lea edx, [ebx + eax*4]
push edx
call sub.msvcrt.dll_memcpy
add esi, 1
add esp, 0xc
cmp esi, dword [edi + 0x18]
jb 0x4963c0
jmp 0x497cbf
push 0x45ab6c
mov edi, esi
jmp 0x498b0d
mov ecx, dword [esp + 0x40]
lea eax, [edx*4]
push eax
push ecx
mov edx, ebx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x497cbf
mov eax, dword [esp + 0x38]
mov edx, dword [ecx + 0x24]
push eax
push ebx
push edx
mov ecx, esi
call fcn.00489c00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp dword [esp + 0x38], edx
je 0x497ea4
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
test eax, eax
je 0x497cbf
mov ecx, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
mov edx, dword [ecx + 8]
cmp dword [edx + 0x28dc], eax
je 0x496489
mov eax, dword [eax + 8]
and eax, 0x8000000
xor ecx, ecx
or eax, ecx
je 0x497cbf
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
jbe 0x4964af
or esi, 0xffffffff
lea ebx, [ebx]
mov edi, dword [edx + eax*4]
cmp dword [edi + 0x38], esi
je 0x4964c3
add eax, 1
cmp eax, ecx
jb 0x4964a0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov dword [esp + 0x98], eax
jmp 0x497cbf
mov edi, dword [ebp + 8]
push 0x45aba0
jmp 0x498b0d
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp dword [esp + 0x38], edx
je 0x497ea4
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
xor edx, edx
test edi, edi
jbe 0x496520
or ebx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [esi + edx*4]
cmp dword [eax + 0x38], ebx
jne 0x496519
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
and eax, 0x8000000
xor ecx, ecx
or eax, ecx
je 0x4964c3
add edx, 1
cmp edx, edi
jb 0x496500
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], esi
mov dword [esp + 0x98], ecx
jmp 0x497cbf
cmp edi, edx
je 0x498b1b
mov edi, dword [esp + 0x38]
add edi, edi
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x68]
xor edi, edi
test eax, eax
lea ebx, [edx + eax*4]
jbe 0x496593
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
and edx, 0x1ff
push edx
and ecx, 0x80000000
push ecx
mov edx, esi
call fcn.0048a030
mov dword [ebx + edi*4], eax
add edi, 1
cmp edi, dword [esp + 0x38]
jb 0x496566
mov ecx, dword [esp + 0x38]
test ecx, ecx
jbe 0x4965a4
mov edi, dword [esp + 0x68]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x68]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push ebx
push eax
and ecx, 0xfffff
push edi
or ecx, 0x20400000
push ecx
push edx
mov ecx, esi
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x98], edi
jmp 0x497cbf
cmp edi, edx
je 0x498b1b
mov edi, dword [esp + 0x38]
add edi, edi
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
xor edi, edi
test eax, eax
lea ebx, [ecx + eax*4]
jbe 0x496650
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
and edx, 0x1ff
push edx
and ecx, 0x80000000
push ecx
mov edx, esi
call fcn.0048a0e0
mov dword [ebx + edi*4], eax
add edi, 1
cmp edi, dword [esp + 0x38]
jb 0x496623
mov ecx, dword [esp + 0x38]
test ecx, ecx
jbe 0x496661
mov edi, dword [esp + 0x68]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x68]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push ebx
push eax
and ecx, 0xfffff
push edi
or ecx, 0x20400000
push ecx
push edx
mov ecx, esi
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x98], edi
jmp 0x497cbf
cmp edi, edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov ecx, dword [esi + 8]
test byte [ecx + 0xae], 0x40
je 0x49670e
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x4966df
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
push 0
push 0
push 0
push 0
and edx, 0xfffff
push 0
or edx, 0x12100000
mov eax, dword [esp + 0x54]
push eax
mov ecx, ebx
push ecx
push edx
mov edx, dword [ebp + 8]
push edx
mov ecx, esi
call fcn.0048fd00
jmp 0x497cb5
mov edi, dword [esp + 0x38]
add edi, edi
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test edi, edi
mov edx, dword [esp + 0x68]
jbe 0x496738
mov ecx, edi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
lea esi, [edx + ecx*4]
jbe 0x49674b
mov edi, dword [ebp + 0xc]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x3c]
push esi
push edx
mov edx, dword [esp + 0x40]
push ecx
push edx
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
mov ecx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0x17
push eax
push esi
and edx, 0xfffff
push ecx
or edx, 0x20300000
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jge 0x497cbf
jmp 0x498b20
cmp edi, edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x4967ce
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
mov eax, ebx
and edx, 0xfffff
push eax
or edx, 0x10100000
push edx
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496820
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push 0
push eax
and edx, 0xfffff
mov ecx, ebx
push ecx
mov ecx, dword [esp + 0x50]
or edx, 0x10000000
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x49687c
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
mov eax, ebx
and edx, 0xfffff
push eax
or edx, 0x20400000
push edx
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x38]
mov edi, esi
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test esi, esi
mov edx, dword [esp + 0x68]
jbe 0x496901
or eax, 0xffffffff
test esi, esi
mov ecx, esi
mov edi, edx
rep stosd dword es:[edi], eax
jbe 0x496901
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x48]
push 0
push 0
push 0
push 0
push 0
push eax
and esi, 0xfffff
push edx
mov edx, dword [ebp + 8]
mov ecx, esi
or ecx, 0x10100000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0
push eax
push ecx
push edx
or esi, 0x20400000
push esi
jmp 0x496791
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
mov esi, ebx
jbe 0x496986
mov ecx, edx
or eax, 0xffffffff
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
push 0
and edx, 0xfffff
test byte [eax + 0xae], 0x40
mov eax, dword [esp + 0x4c]
push 0
push 0
je 0x4969c7
push 0x80000000
push eax
mov eax, dword [esp + 0x54]
push eax
or edx, 0x20a00000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
push 0x17
push eax
mov eax, dword [esp + 0x54]
push eax
push esi
or edx, 0x20200000
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
mov esi, ebx
jbe 0x496a12
mov ecx, edx
or eax, 0xffffffff
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
push 0
and edx, 0xfffff
test byte [eax + 0xae], 0x40
mov eax, dword [esp + 0x44]
push 0
push 0
je 0x496a41
push 0x80000000
push eax
mov eax, dword [esp + 0x5c]
jmp 0x4969b0
push 0x17
push eax
mov eax, dword [esp + 0x5c]
push eax
or edx, 0x20200000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
mov esi, ebx
jbe 0x496a8c
mov ecx, edx
or eax, 0xffffffff
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
push 0
and edx, 0xfffff
test byte [eax + 0xae], 0x40
mov eax, dword [esp + 0x44]
push 0
push 0
je 0x496acd
push 0x80000000
push eax
mov eax, dword [esp + 0x5c]
push eax
or edx, 0x20b00000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
push 0x17
push eax
mov eax, dword [esp + 0x5c]
push eax
or edx, 0x20300000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
mov esi, ebx
jbe 0x496b18
mov ecx, edx
or eax, 0xffffffff
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
push 0
and edx, 0xfffff
test byte [eax + 0xae], 0x40
mov eax, dword [esp + 0x4c]
push 0
push 0
je 0x496b59
push 0x80000000
push eax
mov eax, dword [esp + 0x54]
push eax
or edx, 0x20b00000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
push 0x17
push eax
mov eax, dword [esp + 0x54]
push eax
or edx, 0x20300000
push esi
push edx
mov edx, dword [ebp + 8]
push edx
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496be7
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496bb2
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
push 0
push 0
push 0
push 0x80000000
push ecx
push eax
and edx, 0xfffff
mov ecx, ebx
push ecx
or edx, 0x20c00000
push edx
mov edx, dword [ebp + 8]
mov ecx, esi
push edx
call fcn.0048fd00
jmp 0x497cb5
mov esi, dword [esp + 0x38]
lea edi, [esi*4]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x68]
lea ebx, [esi*4]
test ebx, ebx
jbe 0x496c1d
mov ecx, ebx
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [edx + esi*8]
lea ecx, [esi + esi*2]
add ebx, edx
test esi, esi
mov dword [esp + 0x80], eax
lea eax, [edx + ecx*4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], eax
jbe 0x496c48
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edi, esi
and edi, 0xfffff
mov edx, edi
or edx, 0x10100000
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x7c]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
push edx
push esi
mov eax, edi
or eax, 0x20400000
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x84]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x84]
push edx
push esi
push eax
mov eax, dword [esp + 0x48]
push ecx
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x84]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push 0
push 0
push 0
push 0x17
push esi
push edx
push eax
or edi, 0x20300000
push edi
push ecx
jmp 0x496795
cmp edi, edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov edx, dword [esi + 8]
test byte [edx + 0xae], 0x40
jne 0x4966ce
push 0x45abc4
push 0xdcf
mov edi, ecx
mov ebx, 0x80004001
call fcn.0048c920
add esp, 8
jmp 0x498b20
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496d2c
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496d85
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x23400000
jmp 0x4966f5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496d2c
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496de2
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x23500000
jmp 0x4966f5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496d2c
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496e3f
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x23000000
jmp 0x4966f5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496d2c
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496e9c
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x23100000
jmp 0x4966f5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496d2c
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496ef9
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x23300000
jmp 0x4966f5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 8]
test byte [eax + 0xae], 0x40
je 0x496f70
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x496f52
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
and edx, 0xfffff
push ecx
or edx, 0x20d00000
jmp 0x4966f5
mov esi, dword [esp + 0x38]
lea edi, [esi*4]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x68]
lea ebx, [esi*4]
test ebx, ebx
jbe 0x496fa6
mov ecx, ebx
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [edx + esi*8]
lea ecx, [esi + esi*2]
add ebx, edx
test esi, esi
mov dword [esp + 0x80], eax
lea eax, [edx + ecx*4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], eax
jbe 0x496fd1
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edi, esi
and edi, 0xfffff
mov edx, edi
or edx, 0x10100000
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x7c]
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
push edx
push esi
mov eax, edi
or eax, 0x20400000
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x84]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x84]
push edx
push esi
push eax
mov eax, dword [esp + 0x48]
push ecx
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x84]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push 0
push 0
push 0
push 0x17
push esi
push edx
push eax
or edi, 0x20200000
push edi
push ecx
jmp 0x496795
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
test byte [eax + 0xae], 0x40
je 0x497159
mov ebx, dword [esp + 0x38]
xor edi, edi
test ebx, ebx
jbe 0x49710a
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
sub esi, ecx
mov eax, dword [esi + ecx]
mov eax, dword [eax + 8]
and eax, 0x80000000
xor edx, edx
or eax, edx
je 0x497136
mov eax, dword [ecx]
mov eax, dword [eax + 8]
and eax, 0x80000000
or eax, edx
je 0x497136
add edi, 1
add ecx, 4
cmp edi, ebx
jb 0x4970d3
test ebx, ebx
jbe 0x49710a
mov edi, dword [ebp + 0xc]
mov ecx, ebx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov eax, dword [ebp + 0xc]
push 0
push 0
push 0
push 0x17
push ecx
mov ecx, dword [ebp + 8]
push edx
and ebx, 0xfffff
push eax
or ebx, 0x23000000
push ebx
push ecx
jmp 0x496795
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x34]
push 0x45abf8
push 0xe10
mov ebx, 0x80004005
call fcn.0048c920
add esp, 8
jmp 0x498b20
mov esi, dword [esp + 0x38]
xor ebx, ebx
test esi, esi
jbe 0x4971a3
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x40]
sub edi, ecx
lea ecx, [ecx]
mov eax, dword [ecx + edi]
mov eax, dword [eax + 8]
and eax, 1
xor edx, edx
or eax, edx
je 0x4971cf
mov eax, dword [ecx]
mov eax, dword [eax + 8]
and eax, 1
or eax, edx
je 0x4971cf
add ebx, 1
add ecx, 4
cmp ebx, esi
jb 0x497170
test esi, esi
jbe 0x4971a3
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0x17
push edx
mov edx, dword [ebp + 8]
push eax
and esi, 0xfffff
push ecx
or esi, 0x20500000
push esi
push edx
jmp 0x496795
lea edi, [esi + esi*2]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test edi, edi
mov edx, dword [esp + 0x68]
jbe 0x4971f6
mov ecx, edi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
push 0
push 0
lea eax, [edx + esi*4]
lea ecx, [edx + esi*8]
mov dword [esp + 0x88], ecx
push 0
mov dword [esp + 0x88], eax
or eax, 0xffffffff
push 0
mov ecx, esi
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edi, esi
and edi, 0xfffff
mov edx, edi
or edx, 0x20500000
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push esi
push eax
mov eax, dword [esp + 0x48]
push ecx
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x80]
jmp 0x497073
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
test byte [eax + 0xae], 0x40
je 0x497356
mov ebx, dword [esp + 0x38]
xor edi, edi
test ebx, ebx
jbe 0x497307
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
sub esi, ecx
jmp 0x4972d0
mov eax, dword [ecx + esi]
mov eax, dword [eax + 8]
and eax, 0x80000000
xor edx, edx
or eax, edx
je 0x497333
mov eax, dword [ecx]
mov eax, dword [eax + 8]
and eax, 0x80000000
or eax, edx
je 0x497333
add edi, 1
add ecx, 4
cmp edi, ebx
jb 0x4972d0
test ebx, ebx
jbe 0x497307
mov edi, dword [ebp + 0xc]
mov ecx, ebx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov eax, dword [ebp + 0xc]
push 0
push 0
push 0
push 0x17
push ecx
mov ecx, dword [ebp + 8]
push edx
and ebx, 0xfffff
push eax
or ebx, 0x23100000
push ebx
push ecx
jmp 0x496795
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x34]
push 0x45ac28
push 0xe11
mov ebx, 0x80004005
call fcn.0048c920
add esp, 8
jmp 0x498b20
mov esi, dword [esp + 0x38]
lea edi, [esi*4]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x68]
lea ebx, [esi*4]
test ebx, ebx
jbe 0x49738c
mov ecx, ebx
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [edx + esi*8]
lea ecx, [esi + esi*2]
add ebx, edx
test esi, esi
mov dword [esp + 0x80], eax
lea eax, [edx + ecx*4]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x84], eax
jbe 0x4973b7
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
push ecx
push 0
push edx
mov edx, dword [ebp + 8]
push edx
push eax
mov eax, esi
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x7c]
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x38]
push 0
push edx
push eax
push ecx
mov eax, esi
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
push 0
push 0
push 0
push 4
push edx
mov edx, dword [ebp + 8]
mov edi, esi
mov esi, dword [esp + 0x94]
push eax
and edi, 0xfffff
push esi
mov ecx, edi
or ecx, 0x20400000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x84]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 8
push 0
push esi
push eax
mov ecx, edi
or ecx, 0x10100000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x84]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0x17
push esi
push eax
push ecx
or edi, 0x20200000
push edi
push edx
jmp 0x496795
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x4974c4
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
mov eax, ebx
and edx, 0xfffff
push eax
or edx, 0x20500000
push edx
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x34]
mov edx, dword [esi + 8]
test byte [edx + 0xae], 0x40
je 0x497565
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x497533
mov ecx, edx
or eax, 0xffffffff
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [ebp + 8]
mov eax, ebx
and edx, 0xfffff
push eax
or edx, 0x20800000
push edx
push ecx
mov ecx, esi
call fcn.0048fd00
jmp 0x497cb5
mov esi, dword [esp + 0x38]
mov edi, esi
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test esi, esi
mov edx, dword [esp + 0x68]
jbe 0x49759c
or eax, 0xffffffff
test esi, esi
mov ecx, esi
mov edi, edx
rep stosd dword es:[edi], eax
jbe 0x49759c
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x48]
push 0
push 0
push 0
push 0
push 0
mov edi, esi
push eax
and edi, 0xfffff
push edx
mov edx, dword [ebp + 8]
mov ecx, edi
or ecx, 0x10300000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0
push eax
push ecx
push edx
or edi, 0x20500000
push edi
jmp 0x496791
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x38]
lea edi, [esi*8]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test edi, edi
mov edx, dword [esp + 0x68]
jbe 0x49763f
mov ecx, edi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
lea eax, [esi*4]
lea ecx, [eax + edx]
mov dword [esp + 0x7c], ecx
lea ecx, [edx + esi*8]
mov dword [esp + 0x80], ecx
lea ecx, [esi + esi*2]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x84], ecx
lea eax, [edx + eax*4]
mov dword [esp + 0x88], eax
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
lea ecx, [esi + esi*2]
mov dword [esp + 0x8c], eax
lea eax, [edx + ecx*8]
lea ecx, [esi*8]
sub ecx, esi
test esi, esi
mov dword [esp + 0x90], eax
lea eax, [edx + ecx*4]
mov dword [esp + 0x94], eax
jbe 0x4976a9
mov edi, dword [ebp + 0xc]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
push 0
push 0
and esi, 0xfffff
test byte [eax + 0xae], 0x40
push 0
push 0
je 0x4978c0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x18]
add eax, 0xfffffff5
cmp eax, 2
ja 0x4978a0
mov ebx, dword [esp + 0x58]
push ebx
mov ebx, dword [esp + 0x54]
push ebx
mov eax, esi
or eax, 0x20500000
push edx
push eax
push edi
mov dword [esp + 0x60], eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x4c]
mov edi, esi
push edx
or edi, 0x10100000
push edi
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x7c]
push 0
push 0
push 0
push 0x17
push ecx
mov ecx, esi
or ecx, 0x20b00000
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x94]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [esp + 0x50]
push edi
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
call fcn.004ad860
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x8c]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0x180
push 0
push eax
push edi
mov ecx, esi
or ecx, 0x10300000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push edi
mov edi, dword [esp + 0xa4]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
push 0
push 0
push 0
push 4
push 0
push edi
mov edi, dword [esp + 0xac]
push edi
or esi, 0x10400000
push esi
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x88]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x3c]
push 0
push 0
push 0
push 0
push edi
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
jmp 0x496795
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
push edx
mov edx, dword [ebp + 0xc]
push eax
push edx
or esi, 0x20900000
push esi
push edi
call fcn.0048fd00
jmp 0x497cb5
mov edi, dword [esp + 0x58]
push edi
mov edi, dword [esp + 0x54]
push edi
mov eax, esi
or eax, 0x20500000
push edx
push eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 8]
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x4c]
mov edi, esi
push edx
or edi, 0x10100000
push edi
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x7c]
push 0
push 0
push 0
push 0x17
push ecx
mov ecx, esi
or ecx, 0x20300000
jmp 0x497750
cmp dword [esp + 0x58], edx
je 0x498b1b
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x48]
mov ecx, dword [edi + 0x14]
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push ebx
push edx
mov ecx, esi
call fcn.00493620
jmp 0x497cb5
cmp edi, edx
je 0x498b1b
mov eax, dword [ecx + 0x28]
cmp eax, edx
je 0x498b1b
mov ecx, dword [eax + 4]
cmp ecx, 0xf
jne 0x4979c3
cmp dword [eax + 0x18], 2
jne 0x498b1b
cmp ebx, edx
je 0x497cbf
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0x20]
lea edx, [ecx*4]
mov ecx, dword [esp + 0x40]
push edx
lea edx, [ecx + eax*4]
push edx
mov eax, ebx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x497cbf
cmp ecx, 1
jne 0x498b1b
cmp ebx, edx
je 0x497cbf
xor ecx, ecx
cmp dword [esp + 0x38], ecx
jbe 0x497cbf
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x40]
mov edx, ebx
lea ebx, [ebx]
mov ebx, dword [eax + 8]
mov ebx, dword [ebx + 0x20]
mov ebx, dword [esi + ebx*4]
mov dword [edx + ecx*4], ebx
mov eax, dword [eax + 0xc]
add ecx, 1
cmp ecx, edi
jb 0x4979f0
jmp 0x497cbf
cmp edi, edx
je 0x498b1b
cmp dword [esp + 0x58], edx
je 0x498b1b
cmp ebx, edx
je 0x497cbf
mov esi, dword [esp + 0x38]
lea edi, [esi + esi*2]
lea eax, [esp + 0x68]
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x498b20
test edi, edi
mov edx, dword [esp + 0x68]
jbe 0x497a50
mov ecx, edi
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
test esi, esi
lea ecx, [edx + esi*4]
lea edx, [edx + esi*8]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x3c], 0
jbe 0x497af5
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x68]
mov ecx, esi
mov esi, dword [esp + 0x34]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
sub ecx, eax
sub eax, ebx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], eax
lea esp, [esp]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
add eax, ebx
mov eax, dword [eax + ecx]
lea edi, [esp + 0x53]
call fcn.0048b260
test eax, eax
jl 0x497af5
cmp byte [esp + 0x53], 0
je 0x497ace
mov edx, dword [esp + 0x64]
lea eax, [edx + ebx]
mov eax, dword [eax]
mov dword [ebx], eax
jmp 0x497ad9
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx]
mov dword [ebx], edx
mov eax, dword [esp + 0x3c]
add dword [esp + 0xa0], 4
add eax, 1
add ebx, 4
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
jb 0x497aa0
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x3c], edx
jne 0x497b3f
test edx, edx
jbe 0x497b0d
mov edi, dword [ebp + 0xc]
mov ecx, edx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [ebp + 0xc]
push 0
push 0
push 0
push 0
push 0
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x50]
and edx, 0xfffff
or edx, 0x10000000
push edx
push eax
call fcn.0048fd00
jmp 0x497cb5
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
test byte [eax + 0xae], 0x40
je 0x497b76
mov eax, dword [esp + 0x48]
mov ecx, edx
mov edx, dword [esp + 0x40]
push ecx
push edx
mov edx, dword [ebp + 8]
push eax
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x48]
push edx
call fcn.004ad860
jmp 0x497cb5
test edx, edx
jbe 0x497ba5
mov edi, dword [esp + 0x68]
or eax, 0xffffffff
test edx, edx
mov ecx, edx
rep stosd dword es:[edi], eax
jbe 0x497ba5
mov edi, dword [esp + 0x7c]
or eax, eax
test edx, edx
mov ecx, edx
rep stosd dword es:[edi], eax
jbe 0x497ba5
mov edi, dword [esp + 0x80]
mov ecx, edx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
push eax
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
push edi
mov eax, esi
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
push 0
push 0
push 0
push 0x17
push ecx
push edx
mov edx, dword [ebp + 8]
mov ecx, esi
and ecx, 0xfffff
push eax
or ecx, 0x20200000
push ecx
push edx
mov ecx, edi
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0x80]
mov edx, dword [ebp + 0xc]
push esi
push eax
mov eax, dword [esp + 0x50]
push eax
lea ecx, [eax + esi*4]
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
mov ecx, edi
call fcn.004ad860
jmp 0x49679e
mov eax, dword [ecx + 0x24]
lea edx, [esp + 0x3c]
push edx
push eax
lea edx, [esp + 0xa8]
mov ecx, esi
call fcn.0048c510
test eax, eax
jne 0x497c73
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x40]
mov esi, dword [esp + 0x34]
push ecx
push 0x45ac54
push 0xdb6
call fcn.0048c920
add esp, 0xc
jmp 0x498b1b
mov edx, dword [ebp + 8]
add dword [esi + 0xb0], 1
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0xa0]
push 0
push 0
push ebx
push ecx
push edx
push eax
mov eax, dword [esp + 0x54]
push eax
push esi
call fcn.00487dc0
add dword [esi + 0xb0], 0xffffffff
jmp 0x497cb5
push 0
push ebx
push ecx
jmp 0x497caf
push 1
push ebx
mov edx, ecx
push edx
push esi
call fcn.00499240
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov edi, dword [esp + 0x38]
test edi, edi
je 0x497ea4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x497ea4
cmp dword [esp + 0x98], 0
je 0x497ea4
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x28dc]
or ebx, 0xffffffff
xor edx, edx
test edi, edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa0], ecx
jbe 0x497d81
mov ecx, dword [eax + edx*4]
cmp dword [ecx + 0x38], 0xffffffff
jne 0x497d28
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 8]
and eax, 0x8000000
xor esi, esi
or eax, esi
je 0x4964c3
mov eax, dword [esp + 0x54]
test edx, edx
jne 0x497d58
cmp dword [ecx + 0x10], edx
jne 0x497d45
cmp edx, edi
jae 0x497d45
add edx, 1
cmp edx, edi
jae 0x497d3f
mov ecx, dword [eax + edx*4]
cmp dword [ecx + 0x10], 0
je 0x497d31
mov ebx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa0], ecx
jmp 0x497d7a
cmp dword [ecx + 0x24], ebx
jne 0x497df4
cmp ebx, 0xffffffff
je 0x497d7a
mov ecx, dword [ecx + 0x10]
cmp ecx, dword [esp + 0xa0]
je 0x497d7a
test ecx, ecx
jne 0x497e01
add edx, 1
cmp edx, edi
jb 0x497d06
mov esi, dword [esp + 0x98]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x34]
push edi
push esi
push esi
push edx
push eax
call fcn.00489000
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, ecx
or ebx, 0xffffffff
mov dword [esp + 0xa4], edx
xor edx, edx
and eax, 2
cmp dword [esp + 0x3c], ebx
je 0x497e0e
or eax, edx
je 0x497e4d
and ecx, 0x8000000
xor eax, eax
or ecx, eax
je 0x497e4d
mov eax, dword [esp + 0x54]
mov ecx, dword [ebp + 8]
push edi
push esi
push eax
push ecx
mov ecx, dword [esp + 0x44]
call fcn.00493020
jmp 0x497e79
mov edi, dword [ebp + 8]
push 0x45aca4
jmp 0x498b0d
mov edi, dword [ebp + 8]
push 0x45accc
jmp 0x498b0d
or eax, edx
je 0x497e4d
and ecx, 0x8000000
xor eax, eax
or ecx, eax
je 0x497e4d
test edi, edi
mov ecx, dword [esp + 0x54]
jbe 0x497e33
mov edx, dword [ecx + eax*4]
add eax, 1
cmp eax, edi
mov dword [edx + 0x24], ebx
jb 0x497e26
mov eax, dword [ebp + 8]
push edi
push esi
push ecx
mov ecx, dword [esp + 0x40]
push eax
call fcn.00493020
test eax, eax
jl 0x498b1b
jmp 0x497e83
mov ecx, dword [esp + 0x54]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push esi
mov edx, edi
push ecx
mov ecx, dword [esp + 0x50]
and edx, 0xfffff
or edx, 0x10000000
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498b20
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x498b02
mov edx, dword [esp + 0x54]
lea ecx, [edi*4]
push ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x498b02
cmp byte [esp + 0xb0], 0
mov edi, dword [esp + 0x38]
jne 0x497ee4
test edi, edi
je 0x497ee4
cmp byte [ebp + 0x14], 0
mov esi, dword [esp + 0x34]
jne 0x497ee8
push edi
push eax
push eax
mov eax, dword [ebp + 8]
push eax
push esi
call fcn.00489000
mov ebx, eax
test ebx, ebx
jl 0x498b20
jmp 0x497ee8
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x13c]
cmp edi, eax
jbe 0x497f72
test eax, eax
lea edi, [eax + eax]
jne 0x497f02
mov edi, 0x10
mov eax, dword [esp + 0x38]
cmp edi, eax
jae 0x497f16
lea ebx, [ebx]
add edi, edi
cmp edi, eax
jb 0x497f10
xor ecx, ecx
lea eax, [edi + edi]
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x497f57
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x34]
push 0x4580b8
push eax
call fcn.0048c920
add esp, 8
mov ebx, 0x8007000e
jmp 0x498b20
mov eax, dword [esi + 0x138]
push eax
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esi + 0x138], ebx
mov dword [esi + 0x13c], edi
mov edi, dword [esi + 0x138]
mov ecx, dword [esp + 0x38]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
lea ebx, [edi + ecx*8]
push ebx
push eax
mov ecx, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x6c], ebx
call fcn.0048a7f0
mov ecx, dword [esi + 8]
xor eax, eax
test byte [ecx + 0xae], 0x40
je 0x49828b
cmp dword [esp + 0x38], eax
mov ecx, 0x42
mov esi, 0x776148
lea edi, [esp + 0xf8]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x58], eax
jbe 0x4980c8
mov esi, dword [esp + 0x54]
mov edi, ebx
sub edi, esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0x98], edi
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + eax*4]
test edx, edx
mov dword [esp + 0x48], edx
je 0x498273
cmp byte [esp + 0xb0], 0
mov dword [esi], 0
mov dword [esi + 4], 0
jne 0x4980ad
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x28dc]
cmp ecx, dword [edx + 0x10]
je 0x4980ad
lea ecx, [esp + 0x100]
mov dword [esp + 0x3c], 0xb
jmp 0x498037
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov ebx, dword [edi + esi]
mov edi, dword [edi + esi + 4]
and eax, 0x80000000
and edx, 0x1ff
cmp eax, ebx
mov dword [esp + 0x44], edi
jne 0x49805b
cmp edx, edi
je 0x498098
mov esi, dword [ecx - 4]
mov edi, dword [ecx - 8]
and esi, dword [esp + 0x44]
and edi, ebx
or edi, esi
je 0x498091
mov edi, dword [ecx]
and edi, eax
mov eax, dword [ecx + 4]
and eax, edx
or edi, eax
je 0x498091
mov esi, dword [esp + 0xa0]
mov edx, dword [ecx + 0xc]
add dword [ecx + 8], 1
mov dword [esi], edx
mov dword [esi + 4], 0
jmp 0x498098
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x98]
add ecx, 0x18
sub dword [esp + 0x3c], 1
jne 0x498033
mov eax, dword [esp + 0x58]
add eax, 1
add esi, 8
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov dword [esp + 0xa0], esi
jb 0x497fdf
lea eax, [esp + 0x108]
mov dword [esp + 0xa0], 0
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx]
test esi, esi
je 0x498202
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
lea edi, [esi + esi]
lea eax, [esp + 0x78]
mov dword [esp + 0x80], 2
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov edx, dword [esp + 0x78]
xor eax, eax
cmp dword [esp + 0x38], eax
lea ecx, [edx + esi*4]
mov dword [esp + 0x9c], ecx
jbe 0x49817d
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xb0], ecx
mov ecx, edx
mov edi, dword [esp + 0x54]
mov edi, dword [edi + eax*8]
cmp edi, dword [esp + 0xb0]
jne 0x498174
mov edi, dword [esp + 0x54]
mov ebx, dword [edi + eax*8 + 4]
xor edi, edi
cmp ebx, edi
jne 0x498174
mov edi, dword [ebp + 0xc]
mov edi, dword [edi + eax*4]
mov dword [ecx], edi
add ecx, 4
add eax, 1
cmp eax, dword [esp + 0x38]
jb 0x49814b
test esi, esi
jbe 0x49818f
mov edi, dword [esp + 0x9c]
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x9c]
mov eax, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push edx
mov edx, edi
xor edx, esi
push ecx
mov ecx, dword [esp + 0x50]
and edx, 0xfffff
xor edx, edi
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov esi, dword [esp + 0x38]
xor eax, eax
test esi, esi
jbe 0x4981f9
mov ecx, dword [esp + 0x9c]
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x54]
cmp dword [ebx + eax*8], edi
jne 0x4981f2
mov ebx, dword [ecx]
mov dword [edx + eax*4], ebx
add ecx, 4
add eax, 1
cmp eax, esi
jb 0x4981e1
lea esi, [esp + 0x78]
call fcn.0048cb30
mov eax, dword [esp + 0xa0]
add dword [esp + 0x3c], 0x18
add eax, 1
cmp eax, 0xb
mov dword [esp + 0xa0], eax
jb 0x4980de
xor ecx, ecx
cmp dword [esp + 0x38], ecx
jbe 0x498b02
mov edx, dword [esp + 0x64]
mov esi, 0xfffffe00
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x498263
and dword [eax + 8], 0x7fffffff
and dword [eax + 0xc], esi
mov edi, dword [edx + ecx*8]
mov ebx, dword [edx + ecx*8 + 4]
and edi, 0x80000000
or dword [eax + 8], edi
and ebx, 0x1ff
or dword [eax + 0xc], ebx
add ecx, 1
cmp ecx, dword [esp + 0x38]
jb 0x498236
xor ebx, ebx
jmp 0x498b20
push 0x45a9bc
jmp 0x498b0b
lea esi, [esp + 0x78]
call fcn.0048cb30
jmp 0x498b20
cmp dword [esp + 0x38], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x98], eax
jbe 0x498a41
mov eax, edi
sub ebx, edi
jmp 0x4982b0
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x98]
mov esi, dword [ecx + edx*4]
test esi, esi
je 0x498273
cmp byte [esp + 0xb0], 0
jne 0x498366
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 8]
mov edi, dword [edx + 0x28dc]
cmp edi, dword [esi + 0x10]
je 0x498366
mov ecx, dword [ebx + eax]
and ecx, 1
xor edx, edx
or ecx, edx
je 0x49830e
mov ecx, dword [esi + 8]
and ecx, 1
or ecx, edx
jne 0x49830e
add dword [esp + 0xa0], 1
mov dword [eax], 1
mov dword [eax + 4], edx
jmp 0x498373
cmp edi, dword [esi + 0x10]
je 0x498366
mov edx, dword [ebx + eax]
mov ecx, edx
and ecx, 2
xor edi, edi
or ecx, edi
je 0x498366
mov ecx, dword [esi + 8]
and ecx, 2
xor esi, esi
or ecx, esi
jne 0x498366
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x20], esi
jne 0x498356
mov ecx, dword [ecx + 0x14]
test dword [ecx + 0x28], 0x400000
je 0x498356
mov ecx, dword [ebx + eax + 4]
and edx, 0xfffffffd
mov dword [ebx + eax], edx
mov dword [ebx + eax + 4], ecx
mov dword [eax], esi
mov dword [eax + 4], esi
jmp 0x498373
add dword [esp + 0x3c], 1
mov dword [eax], 2
mov dword [eax + 4], esi
jmp 0x498373
mov dword [eax + 4], 0
mov dword [eax], 0
mov ecx, dword [esp + 0x98]
add ecx, 1
add eax, 8
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x98], ecx
jb 0x4982b0
cmp dword [esp + 0xa0], 0
je 0x498506
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
lea edi, [esi*4]
lea eax, [esp + 0x78]
mov dword [esp + 0x80], 2
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov ebx, dword [esp + 0x78]
lea edx, [esi + esi*2]
add edi, ebx
test esi, esi
lea ecx, [ebx + esi*8]
lea edx, [ebx + edx*4]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
jbe 0x498423
or eax, 0xffffffff
test esi, esi
mov ecx, esi
rep stosd dword es:[edi], eax
jbe 0x498423
mov edi, dword [esp + 0xa8]
mov ecx, esi
or eax, eax
rep stosd dword es:[edi], eax
mov edi, ebx
xor eax, eax
mov ecx, edx
sub edi, edx
mov edx, dword [esp + 0x54]
nop
cmp dword [edx + eax*8], 1
jne 0x498463
cmp dword [edx + eax*8 + 4], 0
jne 0x498463
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + eax*4]
mov dword [edi + ecx], edx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x20], 0
je 0x498457
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + eax*4]
jmp 0x49845a
or edx, 0xffffffff
mov dword [ecx], edx
mov edx, dword [esp + 0x54]
add ecx, 4
add eax, 1
cmp eax, dword [esp + 0x38]
jb 0x498430
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0xa4]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x34]
push ebx
push eax
push edi
push ecx
push edx
mov eax, esi
call fcn.00489420
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebp + 8]
push 0
push 0
push 0
push 0x17
push edi
mov edi, dword [esp + 0xc0]
push eax
push edi
and esi, 0xfffff
or esi, 0x20200000
push esi
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
mov edx, dword [ebp + 0xc]
xor eax, eax
cmp dword [ecx + eax*8], 1
jne 0x4984f6
cmp dword [ecx + eax*8 + 4], 0
jne 0x4984f6
mov ebx, dword [edi]
mov dword [edx + eax*4], ebx
add edi, 4
add eax, 1
cmp eax, esi
jb 0x4984e1
lea esi, [esp + 0x78]
call fcn.0048cb30
cmp dword [esp + 0x3c], 0
je 0x498a41
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 8]
mov edi, esi
imul edi, edi, 0xb
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], eax
lea eax, [esp + 0x78]
mov dword [esp + 0x80], 2
call fcn.0048cb10
mov ebx, eax
test ebx, ebx
jl 0x49827d
mov ecx, dword [esp + 0x78]
xor eax, eax
lea edx, [esi*4]
lea ecx, [ecx]
mov dword [esp + eax*4 + 0xcc], ecx
add eax, 1
add ecx, edx
cmp eax, 0xb
jb 0x498560
mov ecx, dword [esp + 0xf4]
mov edi, dword [esp + 0xcc]
mov ebx, dword [ebp + 0xc]
xor eax, eax
sub edi, ecx
mov dword [esp + 0x98], edi
lea ecx, [ecx]
mov edx, dword [esp + 0x54]
cmp dword [edx + eax*8], 2
jne 0x4985bd
cmp dword [edx + eax*8 + 4], 0
jne 0x4985bd
mov edx, dword [ebx + eax*4]
mov dword [edi + ecx], edx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x20], 0
je 0x4985b5
mov edx, dword [ebx + eax*4]
jmp 0x4985b8
or edx, 0xffffffff
mov dword [ecx], edx
add ecx, 4
add eax, 1
cmp eax, dword [esp + 0x38]
jb 0x498590
mov edx, 1
jmp 0x4985d0
test esi, esi
mov edi, dword [esp + edx*4 + 0xcc]
jbe 0x4985e2
mov ecx, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
add edx, 1
cmp edx, 0xa
jb 0x4985d0
mov eax, dword [esp + 0xcc]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
mov edi, esi
mov esi, dword [esp + 0xe4]
push eax
and edi, 0xfffff
push esi
mov ecx, edi
or ecx, 0x10200000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xd4]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0x14
push 0
push esi
push eax
mov ecx, edi
or ecx, 0x10400000
push ecx
mov ecx, dword [esp + 0x54]
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0x18
push 0
push eax
push ecx
mov ecx, dword [esp + 0x50]
mov esi, edi
or esi, 0x10100000
push esi
push edx
mov dword [esp + 0xc4], esi
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd8]
push 0
push 0
push 0
push 2
push ecx
mov ecx, dword [esp + 0xf0]
push edx
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x50]
mov eax, edi
or eax, 0x20400000
push eax
push edx
mov dword [esp + 0x60], eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xe0]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0
push 0
push eax
push ecx
mov ecx, dword [esp + 0x50]
push esi
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xe4]
push 0
push 0
push 0
push 0x17
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x4c]
mov esi, edi
push edx
or esi, 0x20200000
push esi
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xa0]
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x58]
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
push 0
push 0
push 0
push 0x17
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
mov ecx, dword [esp + 0x50]
push esi
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0xf0]
mov edx, dword [ebp + 8]
push 0
push 0
push 0
push 0x17
push eax
push ecx
mov ecx, dword [esp + 0x4c]
push esi
or edi, 0x20500000
push edi
push edx
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x3c]
push 0
push 0
push 0
push 2
push esi
push eax
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
call fcn.0048fd00
mov ebx, eax
test ebx, ebx
jl 0x498aa8
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x3c], eax
cmp dword [ecx + eax*8], 2
jne 0x498a27
cmp dword [ecx + eax*8 + 4], 0
jne 0x498a27
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x98]
mov ecx, dword [eax + edx]
mov edi, dword [eax]
mov edx, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov eax, edx
and eax, 0x800
xor ebx, ebx
or eax, ebx
je 0x498898
or edx, 0x7000
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], esi
mov eax, dword [ecx + 8]
and eax, 0x1000
xor edx, edx
or eax, edx
je 0x498a04
fld qword [ecx + 0xc0]
sub esp, 8
fst qword [esp + 0xb8]
fld qword [ecx + 0xc8]
fstp qword [esp + 0x60]
fstp qword [esp]
call sub.msvcrt.dll__finite
mov esi, dword [esp + 0x3c]
add esp, 8
test eax, eax
je 0x498916
fldz
sub esp, 8
fld qword [esp + 0xb8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x498901
fadd qword [esi + 0x150]
fstp qword [esp]
call sub.msvcrt.dll_floor
add esp, 8
jmp 0x49891d
fsubr qword [esi + 0x150]
fstp qword [esp]
call sub.msvcrt.dll_floor
add esp, 8
fchs
jmp 0x49891d
fld qword [esp + 0xb0]
fstp qword [esp + 0xb0]
sub esp, 8
fld qword [esp + 0x60]
fstp qword [esp]
call sub.msvcrt.dll__finite
add esp, 8
test eax, eax
je 0x498976
fldz
sub esp, 8
fld qword [esp + 0x60]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x498961
fadd qword [esi + 0x150]
fstp qword [esp]
call sub.msvcrt.dll_floor
add esp, 8
jmp 0x49897a
fsubr qword [esi + 0x150]
fstp qword [esp]
call sub.msvcrt.dll_floor
add esp, 8
fchs
jmp 0x49897a
fld qword [esp + 0x58]
fst qword [esp + 0x58]
fld qword [esp + 0xb0]
fst qword [esp + 0x48]
fst qword [edi + 0xc0]
fxch st(1)
fst qword [esp + 0x40]
fst qword [edi + 0xc8]
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4989d4
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x40]
jne 0x4989d4
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x44]
jne 0x4989d4
sub esp, 8
fstp st(0)
mov eax, edi
fstp qword [esp]
call fcn.004db740
fld qword [esp + 0xb0]
fld qword [esp + 0x58]
or dword [edi + 8], 0x1000
fucompp
mov edx, dword [edi + 0xc]
mov dword [edi + 0xc], edx
fnstsw ax
test ah, 0x44
jp 0x4989f8
or dword [edi + 8], 0x800
mov eax, edx
mov dword [edi + 0xc], eax
jmp 0x498a04
and dword [edi + 8], 0xfffff7ff
mov ecx, edx
mov dword [edi + 0xc], ecx
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x3c]
add eax, 4
mov dword [ecx + esi*4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xa0], eax
mov eax, esi
add eax, 1
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
jb 0x498851
lea esi, [esp + 0x78]
call fcn.0048cb30
xor edx, edx
cmp dword [esp + 0x38], edx
jbe 0x498b02
lea ecx, [ecx]
mov esi, dword [esp + 0x64]
mov edi, dword [esi + edx*8 + 4]
mov ecx, dword [esi + edx*8]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + edx*4]
or dword [eax + 8], ecx
and edi, 0xfffffedb
or dword [eax + 0xc], edi
mov ecx, dword [eax + 0xc]
mov edi, dword [esi + edx*8 + 4]
xor ebx, ebx
mov dword [esp + 0xa4], ecx
and ecx, 0x124
mov esi, ebx
and edi, 0x124
or esi, ecx
jne 0x498a91
mov ecx, edi
cmp dword [eax + 0x84], 0
jne 0x498ac9
cmp ecx, edi
ja 0x498ad5
jb 0x498ad9
xor esi, esi
cmp ebx, esi
jb 0x498ad9
jmp 0x498ad5
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x80]
call fcn.00482e60
jmp 0x498b20
cmp ecx, edi
jb 0x498ad5
ja 0x498ad9
xor esi, esi
cmp ebx, esi
ja 0x498ad9
mov ecx, edi
xor ebx, ebx
mov esi, dword [esp + 0xa4]
mov edi, dword [eax + 8]
and esi, 0xfffffedb
mov dword [eax + 8], edi
or dword [eax + 8], ebx
mov dword [eax + 0xc], esi
or dword [eax + 0xc], ecx
add edx, 1
cmp edx, dword [esp + 0x38]
jb 0x498a50
xor ebx, ebx
jmp 0x498b20
push 0x45ac7c
xor edi, edi
mov esi, dword [esp + 0x38]
push 0
call fcn.0048c920
add esp, 8
mov ebx, 0x80004005
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
call fcn.00482e60
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0xc8]
call fcn.00482e60
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
mov eax, 0x80004005
pop ebx
mov esp, ebp
pop ebp
ret 0x10