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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
push ebx
mov ebx, dword [esp + 0x64]
push ebp
push esi
push edi
mov dword [esp + 0x14], edx
mov edx, dword [ebx]
mov edi, ecx
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [esp + 0x78]
mov dword [ebx], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov dword [eax], 0
cmp dword [edi], 6
jne 0x489348
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
sub esi, dword [ecx]
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + 0x10c]
sub edx, dword [ebx]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x108]
mov ebp, eax
and ebp, ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x10], edx
cmp ebp, 0xffffffff
je 0x489209
sub eax, dword [edi + 0x18]
sbb ecx, dword [edi + 0x1c]
xor ebp, ebp
cmp ebp, ecx
jb 0x4891eb
ja 0x4891e7
cmp edx, eax
jbe 0x4891eb
mov dword [esp + 0x10], eax
or eax, ecx
jne 0x489209
mov ecx, dword [edi + 0x110]
cmp ecx, dword [edi + 0x20]
jne 0x489209
mov edx, dword [edi + 0x114]
cmp edx, dword [edi + 0x24]
je 0x4898bc
mov eax, dword [edi + 0x110]
mov ecx, dword [edi + 0x114]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x48923b
sub eax, dword [edi + 0x20]
sbb ecx, dword [edi + 0x24]
xor edx, edx
cmp edx, ecx
jb 0x48923b
ja 0x489230
cmp esi, eax
jb 0x48923b
mov ecx, 1
mov dword [esp + 0x70], eax
jmp 0x48923f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x14]
push eax
push ecx
push 0
lea ecx, [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x84]
push eax
lea ecx, [edi + 0x68]
mov edx, ebp
call fcn.00488b00
mov esi, dword [esp + 0x70]
push esi
lea ecx, [edi + 0x1a0]
mov edx, ebp
mov dword [esp + 0x20], eax
call fcn.004884a0
mov eax, dword [esp + 0x10]
add dword [ebx], eax
add dword [esp + 0x6c], eax
add dword [edi + 0x18], eax
mov eax, dword [esp + 0x68]
mov ecx, 0
adc dword [edi + 0x1c], ecx
add dword [eax], esi
add ebp, esi
add dword [edi + 0x20], esi
mov dword [esp + 0x14], ebp
adc dword [edi + 0x24], ecx
cmp dword [esp + 0x1c], ecx
jne 0x48988d
mov eax, dword [esp + 0x78]
cmp dword [eax], 1
jne 0x48989b
mov cx, word [edi + 0x10]
call fcn.00488450
xor ecx, ecx
xor esi, esi
add eax, dword [edi + 0x14]
adc ecx, esi
add eax, dword [edi + 0x18]
adc ecx, dword [edi + 0x1c]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004883f0
mov ecx, dword [edi + 0x20]
mov esi, eax
mov eax, dword [edi + 0x24]
push eax
push ecx
lea ecx, [esp + esi + 0x2c]
call fcn.004883f0
add esi, eax
push esi
lea ecx, [edi + 0x218]
lea edx, [esp + 0x28]
call fcn.00487f70
add dword [edi + 0x30], esi
mov ecx, dword [edi + 0x114]
mov eax, 0
adc dword [edi + 0x34], eax
add dword [edi + 0x28], 1
mov dword [edi + 4], eax
mov dword [edi + 8], eax
adc dword [edi + 0x2c], eax
mov eax, dword [edi + 0x110]
mov edx, eax
and edx, ecx
mov dword [edi], 7
cmp edx, 0xffffffff
je 0x489348
cmp eax, dword [edi + 0x20]
jne 0x4898bc
cmp ecx, dword [edi + 0x24]
jne 0x4898bc
mov eax, dword [ebx]
mov ebp, dword [esp + 0x18]
sub ebp, eax
jne 0x48935b
cmp dword [edi], 7
jne 0x4898cb
mov ecx, dword [edi]
cmp ecx, 7
ja case.0x489366.6
jmp dword [ecx*4 + 0x48991c]
mov eax, dword [edi + 4]
cmp eax, 0xc
jae 0x4893a8
cmp eax, 6
jae 0x48938c
mov ecx, dword [esp + 0x6c]
mov dl, byte [ecx]
cmp dl, byte [eax + 0x49ca48]
jne 0x48990d
mov esi, dword [esp + 0x6c]
mov cl, byte [esi]
mov byte [eax + edi + 0x2a4], cl
inc dword [edi + 4]
inc esi
inc dword [ebx]
mov dword [esp + 0x6c], esi
jmp case.0x489366.6
lea edx, [edi + 0x2a4]
lea ecx, [edi + 0x10]
call fcn.00488cd0
xor esi, esi
cmp eax, esi
jne 0x489912
add dword [edi + 0x48], 1
lea ecx, [edi + 0x218]
mov dword [edi + 0x30], esi
adc dword [edi + 0x4c], esi
mov dword [edi + 0x34], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
call fcn.00487450
mov dword [edi], 5
mov dword [edi + 4], esi
jmp case.0x489366.6
mov ecx, dword [edi + 4]
xor esi, esi
cmp ecx, esi
jne 0x489498
mov eax, dword [esp + 0x6c]
mov dl, byte [eax]
mov byte [edi + 0x2a4], dl
inc dword [edi + 4]
inc dword [ebx]
inc eax
mov dword [esp + 0x6c], eax
mov al, byte [edi + 0x2a4]
test al, al
jne 0x489486
cmp dword [edi + 0x280], esi
jne 0x4898bc
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
push eax
push ecx
lea ecx, [edi + 0x2a5]
call fcn.004883f0
inc eax
xor ecx, ecx
add dword [edi + 0x30], eax
mov dword [edi + 0x3c], ecx
lea edx, [edi + 0x284]
adc dword [edi + 0x34], ecx
lea ecx, [edi + 0x218]
mov dword [edi + 0xc], eax
mov dword [edi + 0x38], eax
call fcn.00488020
lea ecx, [edi + 0x218]
call fcn.00487450
mov edx, dword [edi + 0xc]
push edx
lea edx, [edi + 0x2a4]
or ecx, 0xffffffff
call fcn.0048c830
mov dword [edi + 0x60], eax
mov dword [edi], 1
jmp case.0x489366.6
movzx eax, al
lea ecx, [eax*4 + 4]
mov dword [edi + 0x14], ecx
jmp case.0x489366.6
mov eax, dword [edi + 0x14]
cmp ecx, eax
je 0x4894cf
sub eax, ecx
mov esi, eax
cmp esi, ebp
jbe 0x4894a9
mov esi, ebp
mov ebp, dword [esp + 0x6c]
push esi
lea edx, [ecx + edi + 0x2a4]
push ebp
push edx
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
add dword [ebx], esi
add esp, 0xc
add ebp, esi
mov dword [esp + 0x6c], ebp
jmp case.0x489366.6
lea edx, [edi + 0x2a4]
lea ecx, [edi + 0x108]
call fcn.00488d80
cmp eax, esi
jne 0x489912
add dword [edi + 0x58], 1
movzx edx, word [edi + 0x10]
adc dword [edi + 0x5c], esi
and edx, 0xf
lea ecx, [edi + 0x1a0]
mov dword [edi], 6
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], esi
call fcn.00488470
lea ecx, [edi + 0x68]
lea edx, [edi + 0x108]
call fcn.00488f30
cmp eax, esi
je case.0x489366.6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [edi + 0x18]
add ecx, dword [edi + 8]
test cl, 3
je 0x48956e
test ebp, ebp
je 0x4898e1
inc eax
mov dword [ebx], eax
mov eax, dword [esp + 0x6c]
inc dword [edi + 8]
mov dl, byte [eax]
inc eax
mov dword [esp + 0x6c], eax
test dl, dl
je case.0x489366.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x54
ret 0x14
mov cx, word [edi + 0x10]
call fcn.00488450
mov ecx, dword [edi + 4]
mov esi, eax
sub esi, ecx
mov dword [esp + 0x70], eax
je 0x4895c0
test ebp, ebp
je 0x4898f7
cmp esi, ebp
jbe 0x489592
mov esi, ebp
mov ebp, dword [esp + 0x6c]
push esi
lea eax, [ecx + edi + 0x2a4]
push ebp
push eax
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
mov ecx, dword [esp + 0x7c]
add dword [ebx], esi
add ebp, esi
add esp, 0xc
mov dword [esp + 0x6c], ebp
cmp ecx, dword [edi + 4]
jne case.0x489366.6
lea ecx, [edi + 0x1a0]
lea edx, [esp + 0x24]
mov dword [edi], 5
mov dword [edi + 4], 0
call fcn.00488500
test eax, eax
je 0x48963d
mov eax, dword [esp + 0x70]
lea esi, [edi + 0x2a4]
lea ebp, [esp + 0x24]
cmp eax, 4
jb 0x48960c
mov edx, dword [ebp]
cmp edx, dword [esi]
jne 0x48955f
sub eax, 4
add esi, 4
add ebp, 4
cmp eax, 4
jae 0x4895f3
test eax, eax
je 0x48963d
mov cl, byte [esi]
cmp cl, byte [ebp]
jne 0x48955f
cmp eax, 1
jbe 0x48963d
mov dl, byte [esi + 1]
cmp dl, byte [ebp + 1]
jne 0x48955f
cmp eax, 2
jbe 0x48963d
mov al, byte [esi + 2]
cmp al, byte [ebp + 2]
jne 0x48955f
cmp dword [edi + 0x280], 0
je case.0x489366.6
mov eax, dword [esp + 0x78]
pop edi
pop esi
pop ebp
mov dword [eax], 1
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x48968c
mov ebp, dword [esp + 0x6c]
inc eax
mov dword [ebx], eax
mov esi, dword [edi + 4]
mov dl, byte [ebp]
mov al, byte [esi + edi + 0x2a4]
inc esi
inc ebp
mov dword [edi + 4], esi
mov dword [esp + 0x6c], ebp
cmp dl, al
jmp 0x489559
mov esi, dword [edi + 0x3c]
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x30]
cmp esi, eax
ja 0x4896e8
jb 0x4896a2
cmp edx, ecx
jae 0x4896e8
sub ecx, edx
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x4896b4
ja 0x4896b2
cmp ebp, ecx
jbe 0x4896b4
mov ebp, ecx
mov esi, dword [esp + 0x6c]
mov ecx, dword [edi + 0x60]
push ebp
mov edx, esi
call fcn.0048c830
push ebp
lea ecx, [edi + 0x218]
mov edx, esi
mov dword [edi + 0x60], eax
call fcn.00487f70
add dword [ebx], ebp
add esi, ebp
add dword [edi + 0x38], ebp
mov dword [esp + 0x6c], esi
adc dword [edi + 0x3c], 0
jmp case.0x489366.6
and edx, 3
xor esi, esi
or edx, esi
je 0x489732
mov eax, dword [esp + 0x6c]
mov cl, byte [eax]
mov edx, 1
add eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [edi + 0x60]
movzx ebp, cl
xor ebp, eax
and ebp, 0xff
shr eax, 8
xor eax, dword [ebp*4 + 0x4af2a0]
mov dword [edi + 0x60], eax
add dword [ebx], edx
add dword [edi + 0x38], edx
adc dword [edi + 0x3c], esi
add dword [edi + 0x30], edx
adc dword [edi + 0x34], esi
test cl, cl
jmp 0x489559
add ecx, 4
adc eax, esi
mov dword [edi + 0x30], ecx
lea ecx, [edi + 0x218]
lea edx, [esp + 0x24]
mov dword [edi], 2
mov dword [edi + 0x34], eax
mov dword [edi + 4], esi
call fcn.00488020
lea eax, [edi + 0x284]
lea ecx, [esp + 0x24]
mov edx, 0x20
sub ecx, eax
jmp 0x489770
mov esi, dword [eax + ecx]
cmp esi, dword [eax]
jne 0x48955f
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x489770
jmp case.0x489366.6
cmp dword [edi + 4], 4
jae 0x4897b1
inc eax
mov dword [ebx], eax
mov eax, dword [esp + 0x6c]
mov dl, byte [eax]
mov ecx, dword [edi + 4]
mov byte [ecx + edi + 0x2a4], dl
inc dword [edi + 4]
inc eax
mov dword [esp + 0x6c], eax
jmp case.0x489366.6
mov eax, dword [edi + 0x60]
not eax
cmp eax, dword [edi + 0x2a4]
mov dword [edi], 3
mov dword [edi + 4], 0
jmp 0x489559
mov eax, dword [edi + 4]
mov esi, 0xc
sub esi, eax
cmp esi, ebp
jbe 0x4897de
mov esi, ebp
mov ebp, dword [esp + 0x6c]
push esi
lea ecx, [eax + edi + 0x2a4]
push ebp
push ecx
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
add dword [ebx], esi
add ebp, esi
add esp, 0xc
cmp dword [edi + 4], 0xc
mov dword [esp + 0x6c], ebp
jne case.0x489366.6
add dword [edi + 0x50], 1
mov edx, dword [edi + 0x34]
movzx ecx, word [edi + 0x10]
mov eax, 0
adc dword [edi + 0x54], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x30]
push edx
push eax
lea esi, [edi + 0x2a4]
push ecx
mov dword [edi], 4
call fcn.00488d20
test eax, eax
jne case.0x489366.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x54
ret 0x14
mov edx, dword [esp + 0x6c]
cmp byte [edx], 0
je 0x489875
test byte [edi + 0x40], 3
jne 0x48990d
mov dword [edi + 4], 0
mov dword [edi], 0
jmp case.0x489366.6
inc eax
mov dword [ebx], eax
mov eax, 1
add dword [esp + 0x6c], eax
add dword [edi + 0x40], eax
adc dword [edi + 0x44], 0
jmp case.0x489366.6
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [edi + 0x108]
cmp ecx, dword [edi + 0x18]
jne 0x4898eb
mov edx, dword [edi + 0x10c]
cmp edx, dword [edi + 0x1c]
jne 0x4898eb
cmp dword [eax], 3
jne 0x4898eb
mov dword [eax], 0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x54
ret 0x14
mov eax, dword [esp + 0x78]
pop edi
pop esi
pop ebp
mov dword [eax], 3
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov ecx, dword [esp + 0x78]
mov dword [ecx], 3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov edx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
mov dword [edx], 3
xor eax, eax
pop ebx
add esp, 0x54
ret 0x14
mov eax, 0x11
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x14