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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov eax, ecx
mov byte [esp + 3], 0
push esi
push edi
mov esi, edx
mov dword [esp + 0xc], eax
mov edi, dword [eax + 8]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x30], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edi
call fcn.004516e0
mov edx, dword [ebp + 8]
xorps xmm0, xmm0
mov esi, dword [esi + 0x14]
mov dword [esp + 0x5c], eax
xor eax, eax
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + 0xc]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0x40]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x54]
cmp esi, dword [esp + 0x38]
jae 0x4849c4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
nop
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
or eax, dword [edi + 4]
jne 0x48488a
test byte [esi + 0x14], 2
jne 0x48488a
mov ecx, dword [esi]
mov dword [esp + 0x48], ecx
test byte [ecx + 4], 1
jne 0x484886
mov dword [esp + 0x78], eax
xorps xmm0, xmm0
mov eax, dword [edx + 0x30]
mov edx, ecx
movaps xmmword [esp + 0x60], xmm0
lea ecx, [esp + 0x60]
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x74], 3
mov dword [esp + 0x60], 0x4512c0
mov dword [esp + 0x64], 0x4513d0
mov dword [esp + 0x78], eax
call fcn.0044d510
cmp byte [esp + 0x74], 0
je 0x484883
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
push 0
push 0
mov ecx, dword [ecx]
call fcn.00450500
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
call fcn.00450030
add esp, 0xc
mov dword [esp + 0x30], eax
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 8]
cmp eax, dword [edx + 0x30]
jne 0x4849ad
test byte [esi + 0x12], 0x82
je 0x4849ad
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4849a9
mov ecx, dword [esi + 0xc]
test ecx, ecx
js 0x4849a9
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*8 + 0x15]
mov ecx, dword [esi]
call fcn.0044f8e0
test eax, eax
je 0x4849a6
mov eax, dword [esi + 0xc]
cmp eax, 0x40
jl 0x4848f5
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], SysStringLen
jmp 0x484912
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x3c], ecx
cmovae edx, ecx
mov dword [esp + 0x28], edx
cmp byte [esp + 0xb], 0
jne 0x48493f
mov edx, dword [esp + 0x34]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.00421730
add esp, 0x10
mov byte [esp + 0xb], 1
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
and ecx, dword [esp + 0x2c]
and eax, dword [esp + 0x10]
or ecx, eax
jne 0x4849a6
mov eax, dword [esp + 0x14]
mov edx, edi
inc eax
mov dword [esp + 0x48], eax
push eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
call fcn.00485550
add esp, 4
test eax, eax
jne 0x485240
mov ecx, dword [esp + 0x14]
mov eax, edi
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x30]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
or eax, dword [esp + 0x3c]
or ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
jmp 0x4849ad
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
add esi, 0x30
cmp esi, dword [esp + 0x38]
jb 0x4847f0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
jmp 0x4849c8
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
not ecx
movzx eax, ax
or ecx, 0x80000000
not esi
mov word [edi + 0x28], ax
mov word [edi + 0x18], ax
mov eax, edi
mov edi, dword [esp + 0x1c]
mov dword [eax + 0x24], 0x4241
mov eax, dword [ebp + 8]
mov edx, dword [edx + 0x40]
and esi, edx
mov dword [esp + 0x2c], esi
mov esi, 0x3f
mov dword [esp + 0x44], edx
and ecx, dword [eax + 0x44]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], ecx
movzx ecx, word [eax + 0x22]
mov dword [esp + 0x48], ecx
movzx eax, cx
cmp si, cx
jge 0x484a24
mov dword [esp + 0x3c], esi
jmp 0x484a32
movsx esi, cx
mov dword [esp + 0x3c], esi
xor esi, esi
cmp si, ax
jge 0x484a70
mov edi, dword [esp + 0x3c]
xor esi, esi
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x2c]
and ecx, dword [esp + 0x10]
or edx, ecx
je 0x484a5f
inc dword [esp + 0x14]
inc esi
cmp esi, edi
jl 0x484a38
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jg 0x484a8f
jl 0x484a7f
test edx, edx
jae 0x484a8f
movsx eax, cx
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
inc eax
movzx eax, ax
mov dword [esp + 0x48], eax
cwde
lea ecx, [eax*4 + 7]
lea eax, [eax + eax*4]
and ecx, 0xfffffff8
add eax, 9
mov dword [esp + 0x40], ecx
and eax, 0xfffffff8
add eax, ecx
cdq
add eax, 0x38
mov dword [esp + 0x44], eax
adc edx, 0
push edx
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
call fcn.0041f6d0
mov esi, eax
add esp, 8
mov dword [esp + 0x24], esi
test esi, esi
je 0x485240
push dword [esp + 0x44]
push 0
push esi
call fcn.004df150
mov eax, dword [esp + 0x54]
lea ecx, [esi + 0x38]
movsx edx, ax
add esp, 0xc
mov dword [esi + 0x20], ecx
xorps xmm0, xmm0
add ecx, dword [esp + 0x40]
mov dword [esi + 8], ecx
lea eax, [edx + 1]
movlpd qword [esp + 0x50], xmm0
lea eax, [ecx + eax*2]
mov dword [esi + 4], eax
lea eax, [eax + edx*2]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x48]
mov word [esi + 0x30], ax
dec eax
mov word [esi + 0x2e], ax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x1c], esi
mov eax, dword [esp + 0x34]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esi], str.auto_index
xor esi, esi
mov edx, dword [eax + 0x14]
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x38]
jae 0x484c99
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x24]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], eax
nop dword [eax + eax]
mov eax, dword [edx + 8]
cmp eax, dword [ecx + 0x30]
jne 0x484c84
test byte [edx + 0x12], 0x82
je 0x484c84
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x484c81
mov ecx, dword [edx + 0xc]
test ecx, ecx
js 0x484c81
mov eax, dword [ebp + 8]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*8 + 0x15]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
call fcn.0044f8e0
test eax, eax
je 0x484c7d
mov eax, dword [esp + 0x28]
xor edx, edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
cmp eax, 0x40
jl 0x484be5
mov eax, closesocket
mov dword [esp + 0x44], eax
jmp 0x484bfe
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
mov dword [esp + 0x44], ecx
mov eax, ecx
and eax, dword [esp + 0x48]
mov ecx, edx
and ecx, dword [esp + 0x40]
or ecx, eax
jne 0x484c7d
mov eax, dword [esp + 0x28]
or dword [esp + 0x40], edx
mov edx, dword [esp + 0x50]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 4]
mov word [eax + esi*2], dx
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x50], eax
test dword [edx + 4], 0x100
jne 0x484c62
test eax, eax
je 0x484c51
test dword [eax + 4], 0x100
je 0x484c51
mov edx, eax
jmp 0x484c62
mov ecx, dword [esp + 0xc]
call fcn.0044f6d0
test eax, eax
jne 0x484c74
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
call fcn.0044f6d0
mov ecx, str.BINARY
test eax, eax
je 0x484c76
mov ecx, dword [eax]
mov eax, dword [edi + 0x20]
mov dword [eax + esi*4], ecx
inc esi
mov edx, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
add edx, 0x30
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x38]
jb 0x484b70
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0
jle 0x484ce6
xor edi, edi
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x2c]
and ecx, dword [esp + 0x10]
or edx, ecx
je 0x484cdb
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov word [eax + esi*2], di
mov eax, dword [ecx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
inc edi
cmp edi, dword [esp + 0x3c]
jl 0x484ca2
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jg 0x484d31
jl 0x484cf7
cmp dword [eax + 0x40], 0
jae 0x484d31
mov eax, dword [esp + 0x34]
mov ecx, 0x3f
mov edx, dword [esp + 0x24]
cmp cx, word [eax + 0x22]
jge 0x484d35
mov edi, eax
nop dword [eax]
mov eax, dword [edx + 4]
mov word [eax + esi*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x484d10
mov edi, dword [esp + 0x1c]
jmp 0x484d35
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov word [eax + esi*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp + 0x14]
mov dword [eax + esi*4], str.BINARY
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x44]
mov dword [ecx + 8], eax
inc dword [esi + 0x44]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x50], ecx
cmp dword [eax + 0x54], ecx
jg 0x484d83
mov ecx, edi
call fcn.0043c7b0
test eax, eax
jne 0x484dbb
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x50]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x38
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov ecx, esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x50], eax
call fcn.0045f460
mov edx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov edi, dword [edx + 4]
test edi, edi
mov ecx, dword [edx]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x1c]
je 0x484e2b
cmp byte [ecx + 0x41], 0
jne 0x484e2b
mov edx, dword [edx + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x50]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.0043cec0
mov eax, dword [esp + 0x4c]
add esp, 4
test eax, eax
jne 0x484e1e
mov dword [esi + 0x10], eax
mov byte [esi + 1], al
mov esi, dword [esp + 0xc]
jmp 0x484e39
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
mov esi, dword [esp + 0xc]
jmp 0x484e39
push eax
mov edx, 0xfffffffa
call fcn.0043cec0
add esp, 4
inc dword [esi + 0x64]
mov edx, dword [ebp + 0x14]
mov esi, dword [edi + 0x20]
movzx eax, byte [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x4c]
shl ecx, 4
mov eax, dword [eax]
mov eax, dword [eax + 4]
add eax, ecx
mov dword [esp + 0x48], eax
test byte [eax + 0x30], 4
je 0x484eff
mov ecx, dword [eax + 0x24]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x484e8b
mov ecx, edi
call fcn.0043c7b0
test eax, eax
jne 0x484ec2
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x50]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [eax + 0x54], esi
jg 0x484ee7
mov ecx, edi
call fcn.0043c7b0
test eax, eax
je 0x484ee4
mov esi, 1
jmp 0x484f5c
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x14
jmp 0x484f3b
mov eax, dword [edx + 4]
mov ecx, esi
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], esi
jg 0x484f25
mov ecx, edi
call fcn.0043c7b0
test eax, eax
je 0x484f22
mov esi, 1
jmp 0x484f5c
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [edi + 0x20], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0x6d
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov byte [eax + ecx*4 + 3], 0
mov edx, dword [esp + 0x30]
test edx, edx
je 0x484fe1
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x50], ecx
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0x18], eax
inc eax
mov dword [ecx + 0x6c], eax
mov eax, dword [esp + 0x18]
dec eax
test dword [esp + 0x18], eax
jne 0x484fab
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ecx]
push 0
lea eax, [eax*8 + 4]
push eax
call fcn.0041f830
mov ecx, dword [esp + 0x58]
add esp, 8
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x484fbd
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xffffffff
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
not eax
push 0x10
push eax
mov dword [esp + 0x20], eax
call fcn.00454ae0
mov eax, dword [esp + 0x28]
add esp, 8
or dword [eax + 0x24], 0x20000
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x13]
test al, al
jne 0x484ff4
inc dword [ecx + 0x48]
mov eax, dword [ecx + 0x48]
jmp 0x485000
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x18]
mov edx, dword [esp + 0x24]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x14]
push dword [eax + 4]
call fcn.004611e0
mov eax, dword [ebp + 0x14]
add esp, 0x18
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x50], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x48504c
mov ecx, edi
call fcn.0043c7b0
test eax, eax
jne 0x485083
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x50]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x6f
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x485095
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x10
cmp dword [esp + 0x30], 0
je 0x4850c9
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 0x18]
not eax
mov dword [esp + 0x18], eax
test eax, eax
js 0x4850c2
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4850c2
mov eax, dword [edi + 0x20]
mov edi, dword [esp + 0x18]
mov dword [ecx + edi*4], eax
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x48]
test byte [eax + 0x30], 4
je 0x485148
push dword [eax + 0x28]
mov eax, dword [ebp + 0x14]
mov edx, esi
mov ecx, edi
push dword [eax + 4]
call fcn.004846d0
mov eax, dword [edi + 0x18]
add esp, 8
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x50], ecx
cmp dword [eax + 0x54], ecx
jg 0x48510b
mov ecx, edi
call fcn.0043c7b0
test eax, eax
jne 0x48513e
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x50]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x48]
and dword [ecx + 0x30], 0xfffffffb
jmp 0x4851ab
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi + 0x20]
mov edx, ecx
mov dword [esp + 0x50], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x485175
mov ecx, edi
call fcn.0043c7b0
test eax, eax
jne 0x4851ab
mov edx, dword [edi + 0x20]
mov ecx, dword [esp + 0x50]
lea eax, [edx + 1]
mov dword [edi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 8
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
lea eax, [esi + 1]
mov dword [ecx + 8], eax
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4851bd
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 3
mov edx, dword [edi + 0x20]
cmp edx, esi
jbe 0x4851d1
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov dword [eax + 0x58], ecx
test edx, edx
je 0x485216
mov al, byte [esi + 0x13]
mov byte [esp + 0xb], al
cmp al, 8
jae 0x485216
xor ecx, ecx
lea eax, [esi + 0x74]
cmp dword [eax + 0xc], edx
je 0x485212
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x4851f6
movzx eax, byte [esp + 0xb]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x13]
jmp 0x485216
mov byte [eax + 6], 1
mov ecx, esi
call fcn.00452d00
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x5c]
cmp edx, eax
jbe 0x485235
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x485244
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x30]
mov esi, dword [esi]
test edi, edi
je 0x4852b1
test dword [edi + 4], 0x4000
jne 0x48529f
mov edx, dword [edi + 0xc]
mov ecx, esi
call fcn.004503d0
mov edx, dword [edi + 0x10]
mov ecx, esi
call fcn.004503d0
mov eax, dword [edi + 4]
test eax, 0x10000
je 0x485282
mov edx, dword [edi + 8]
mov ecx, esi
call fcn.0041f450
mov eax, dword [edi + 4]
mov edx, dword [edi + 0x14]
mov ecx, esi
test eax, 0x800
je 0x48529a
push 1
call fcn.004706c0
add esp, 4
jmp 0x48529f
call fcn.00451100
test dword [edi + 4], 0x8000
jne 0x4852b1
mov edx, edi
mov ecx, esi
call fcn.0041f450
pop edi
pop esi
mov esp, ebp
pop ebp
ret