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

Disassembly:
push 0xffffffffffffffff
push 0x566c59
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
mov al, byte [esp + 3]
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov edi, ecx
mov byte [esp + 0x40], al
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
push 6
push 0x5a4454
lea ecx, [esp + 0x28]
mov dword [esp + 0x9c], ebx
call fcn.005318a0
push 6
push 0x59c0fc
lea ecx, [esp + 0x24]
mov byte [esp + 0x9c], 1
call fcn.005318a0
push 6
push 0x59c0f4
lea ecx, [esp + 0x20]
mov byte [esp + 0x9c], 2
call fcn.005318a0
mov cl, 8
mov al, 0xae
mov dl, 0xa
mov byte [esp + 0x94], 3
mov byte [esp + 0x12], bl
mov byte [esp + 0x50], cl
mov byte [esp + 0x51], 3
mov byte [esp + 0x52], al
mov byte [esp + 0x53], dl
mov byte [esp + 0x54], 1
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], 3
mov byte [esp + 0x5c], al
mov byte [esp + 0x5d], dl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], bl
mov byte [esp + 0x62], bl
mov byte [esp + 0x63], bl
mov byte [esp + 0x64], cl
mov byte [esp + 0x65], 3
mov byte [esp + 0x66], al
mov byte [esp + 0x67], 7
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], bl
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6f], 3
mov byte [esp + 0x70], al
mov byte [esp + 0x71], 7
mov byte [esp + 0x72], 1
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], bl
mov byte [esp + 0x78], cl
mov byte [esp + 0x79], 3
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 6
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
push ebx
push ebx
push ecx
mov byte [esp + 0x8e], cl
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x59b910
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x97], 3
mov byte [esp + 0x98], al
mov byte [esp + 0x99], 6
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], bl
mov byte [esp + 0x9d], bl
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
call fcn.005318a0
push ecx
mov byte [esp + 0xa4], 4
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x59c0ec
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa4], 3
call fcn.00533b90
mov ecx, edi
call fcn.00489030
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x14], 1
and ebp, 0xff
mov dword [esp + 0x38], ebp
lea esi, [ebp + ebp*4]
shl esi, 3
mov cx, word [esi + 0x577e90]
mov al, byte [esi + 0x577ea6]
mov dl, byte [esi + 0x577e9e]
mov word [esp + 0x2c], cx
mov cl, byte [esi + 0x577eaf]
mov byte [esp + 0x28], al
mov ax, word [esi + 0x577e92]
cmp cl, 1
mov byte [esp + 0x13], dl
mov dword [esp + 0x24], eax
jb 0x4878c9
movsx ecx, word [esp + 0x14]
mov dl, byte [ecx + esi + 0x577eaf]
mov ecx, edi
push edx
call fcn.004882a0
test ax, ax
je 0x487a74
mov eax, dword [esp + 0x14]
movzx cx, byte [esi + 0x577eaf]
inc eax
cmp ax, cx
mov dword [esp + 0x14], eax
jle 0x487892
mov eax, dword [esp + 0x24]
sub ebp, 2
jne 0x4878d8
mov dl, byte [esi + 0x577ea8]
mov byte [esp + 0x12], dl
cmp ax, bx
je 0x48793e
xor ecx, ecx
mov cl, ah
push ecx
push 4
lea ecx, [esp + 0x20]
call fcn.00531ad0
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x18]
push edx
push 5
call fcn.00531ad0
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
lea eax, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0xa8], 5
call fcn.00531810
mov ecx, 0x5c6628
mov byte [esp + 0xa4], 3
call fcn.00533b90
mov cl, byte [esp + 0x13]
mov al, byte [esp + 0x28]
cmp al, cl
jbe 0x48797a
mov edx, dword [esp + 0x28]
push ebx
and edx, 0xff
lea ecx, [edi + 0xc]
push 1
push ecx
movzx ax, byte [edx + esi + 0x577ea6]
movsx eax, ax
lea ecx, [edi + 0x9c]
lea edx, [eax + eax*4]
lea eax, [esp + edx*2 + 0x5c]
push eax
call fcn.004551e0
push ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59b910
call fcn.005318a0
push ecx
mov byte [esp + 0xa4], 6
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x59c0e4
call fcn.005318a0
mov ecx, 0x5c6628
mov byte [esp + 0xa4], 3
call fcn.00533b90
mov edx, dword [esp + 0x9c]
lea ecx, [esp + 0x40]
push ecx
push edx
mov ecx, edi
call fcn.00488000
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x20]
push eax
push 5
mov byte [edi + 0x94], bl
call fcn.00531ad0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.005396d0
movzx ax, byte [esp + 0x13]
cmp ax, 1
jl 0x487a54
movsx eax, ax
lea ebp, [esi + 0x577e9f]
mov dword [esp + 0x28], eax
mov cl, byte [ebp]
push ecx
push 5
lea ecx, [esp + 0x24]
call fcn.00531ad0
push 1
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00531810
mov ecx, dword [0x5c6634]
call fcn.00539850
mov eax, dword [esp + 0x28]
inc ebp
dec eax
mov dword [esp + 0x28], eax
jne 0x487a1b
mov al, byte [esp + 0x40]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x44], esp
mov dword [esp + 0x44], ebp
mov byte [ebp], al
mov ecx, dword [esp + 0x54]
cmp ecx, ebx
jne 0x487ad6
xor eax, eax
jmp 0x487adf
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], bl
call fcn.00531940
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, eax
mov dword [esp + 0x94], 0xffffffff
mov edi, eax
je 0x487cd2
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x487ac3
jmp 0x487cce
mov eax, dword [esp + 0x58]
sub eax, ecx
sar eax, 2
cmp eax, ebx
jge 0x487ae5
xor eax, eax
lea ecx, [eax*4]
push ecx
call fcn.00556a96
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x5c]
mov ebp, eax
mov eax, dword [esp + 0x58]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], eax
je 0x487b4c
mov dword [esp + 0x4c], ebp
cmp ebp, ebx
mov byte [esp + 0xa4], 7
je 0x487b2e
push eax
mov ecx, ebp
call fcn.00531810
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
add eax, 4
add ebp, 4
cmp eax, ecx
mov byte [esp + 0xa4], 3
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], eax
jne 0x487b12
mov eax, dword [esp + 0x44]
mov ecx, edi
mov dword [eax + 8], ebp
mov dword [eax + 0xc], ebp
call fcn.00487e10
cmp ax, bx
je 0x487c75
mov ecx, dword [0x5c6634]
call fcn.00539bf0
mov bp, ax
inc ebp
cmp bp, bx
je 0x4879e6
mov eax, dword [esp + 0x38]
sub eax, 2
je 0x487bd2
movsx edx, bp
mov al, byte [edx + esi + 0x577ea6]
cmp al, 0xff
mov byte [esp + 0x14], al
je 0x487bbc
push ebx
lea eax, [edi + 0xc]
push 1
push eax
mov eax, dword [esp + 0x20]
and eax, 0xff
lea ecx, [eax + eax*4]
lea edx, [esp + ecx*2 + 0x5c]
lea ecx, [edi + 0x9c]
push edx
call fcn.004551e0
movzx ax, byte [esi + 0x577e9e]
cmp bp, ax
je 0x487ce3
jmp 0x4879e6
mov cl, byte [esi + 0x577eab]
mov al, byte [esi + 0x577eac]
mov byte [esp + 0x24], cl
movsx ecx, bp
dec ecx
je 0x487c53
dec ecx
je 0x487bf7
dec ecx
je 0x487d4c
jmp 0x4879e6
mov dl, byte [esi + 0x577eaa]
mov cl, byte [esp + 0x12]
mov byte [esp + 0x14], dl
mov dl, byte [esi + 0x577ea8]
cmp cl, dl
jbe 0x4879e6
sub cl, al
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
and eax, 0xff
and edx, 0xff
mov byte [esp + 0x12], cl
push ebx
lea eax, [eax + eax*4]
push 1
shl eax, 1
add edx, eax
mov byte [esp + edx + 0x58], cl
lea ecx, [edi + 0xc]
lea edx, [esp + eax + 0x58]
push ecx
push edx
lea ecx, [edi + 0x9c]
call fcn.004551e0
jmp 0x4879e6
mov cl, byte [esi + 0x577eaa]
mov dl, byte [esp + 0x12]
mov byte [esp + 0x14], cl
mov cl, byte [esi + 0x577ea7]
cmp dl, cl
jae 0x4879e6
mov cl, dl
add cl, al
jmp 0x487c15
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], bl
call fcn.00531940
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, eax
mov dword [esp + 0x94], 0xffffffff
mov edi, eax
je 0x487cd2
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x487cc0
mov esi, dword [esp + 0x44]
push esi
call fcn.00556360
add esp, 4
xor ax, ax
jmp 0x487dee
mov ecx, edi
call fcn.0047de70
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], bl
call fcn.00531940
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, eax
mov dword [esp + 0x94], 0xffffffff
mov edi, eax
je 0x487de1
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x487d39
jmp 0x487ddd
movsx eax, bp
push ebx
lea edx, [edi + 0xc]
mov cl, byte [eax + esi + 0x577ea6]
push 1
mov byte [esp + 0x1c], cl
push edx
mov eax, dword [esp + 0x20]
and eax, 0xff
lea eax, [eax + eax*4]
lea ecx, [esp + eax*2 + 0x5c]
push ecx
lea ecx, [edi + 0x9c]
call fcn.004551e0
mov ecx, edi
call fcn.0047de70
lea ecx, [esp + 0x18]
mov byte [esp + 0x94], 2
call fcn.00531940
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 1
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x94], bl
call fcn.00531940
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, eax
mov dword [esp + 0x94], 0xffffffff
mov edi, eax
je 0x487de1
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x487dcf
mov esi, dword [esp + 0x44]
push esi
call fcn.00556360
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x88
ret 4