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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x52a25b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x624
push ebx
push esi
push edi
mov al, byte [esp + 0x26]
xor esi, esi
push esi
lea ecx, [esp + 0x18]
mov dword [esp + 0x63c], esi
mov byte [esp + 0x18], al
call fcn.00405cc0
lea ecx, [ebp + 8]
mov byte [esp + 0x638], 1
mov byte [esp + 0x10], 6
call fcn.0048ab50
movsx ecx, ax
sub ecx, 8
cmp ecx, 6
jle 0x487f2b
movzx si, byte [esp + 0x10]
lea ecx, [ebp + 8]
lea edx, [esi + 1]
push edx
call fcn.0048a9e0
xor ebx, ebx
push esi
lea ecx, [ebp + 8]
mov bl, al
call fcn.0048a9e0
mov bh, al
cmp bx, 2
je 0x48630a
cmp bx, 3
je 0x48630a
cmp bx, 0xc
je 0x48630a
cmp bx, 0x11a1
je 0x48630a
cmp bx, 0x11ac
je 0x48630a
cmp bx, 0x1235
je 0x48630a
cmp bx, 0x1236
je 0x48630a
mov al, byte [esp + 0x10]
inc al
jmp 0x486310
mov al, byte [esp + 0x10]
add al, 2
mov byte [esp + 0x10], al
mov eax, ebx
and eax, 0xffff
cmp eax, 0x1141
jg 0x4871e8
je 0x4870e5
add eax, 0xfffffffe
cmp eax, 0xf
ja case.0x487200.4474
jmp dword [eax*4 + 0x487f8c]
movzx si, byte [esp + 0x10]
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
cmp al, 0x40
jae 0x486359
mov byte [esp + 0x54], 0
jmp 0x486381
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
cmp al, 0x80
jae 0x48636d
mov byte [esp + 0x54], 1
jmp 0x486381
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
cmp al, 0xc0
sbb al, al
add eax, 3
mov byte [esp + 0x54], al
mov eax, dword [esp + 0x54]
and eax, 0xff
cmp eax, 3
ja case.default.0x486393
jmp dword [eax*4 + 0x487fcc]
lea ecx, [esi + 1]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
xor edx, edx
push esi
mov dl, al
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
mov dh, al
push edx
push str.P_04X
jmp 0x486478
lea ecx, [esi + 1]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
mov dl, al
push esi
and edx, 0xff
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
and eax, 0xff
sub eax, 0x40
shl eax, 8
or edx, eax
push edx
push str.C_04X
jmp 0x486478
lea ecx, [esi + 1]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
mov dl, al
push esi
and edx, 0xff
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
and eax, 0xff
sub eax, 0x80
shl eax, 8
or edx, eax
push edx
push str.B_04X
jmp 0x486478
lea ecx, [esi + 1]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
mov dl, al
push esi
and edx, 0xff
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
and eax, 0xff
sub eax, 0xc0
shl eax, 8
or edx, eax
push edx
push str.U_04X
lea eax, [esp + 0x74]
push eax
call fcn.00514b75
add esp, 0xc
lea edi, [esp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x2bc]
push edx
mov word [esp + 0x2bc], bx
call fcn.0040d030
mov ax, word [esp + 0x2b8]
lea ecx, [esp + 0x2bc]
push ecx
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x63c], 2
mov word [esp + 0x2f8], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x2f4]
lea eax, [esp + 0x548]
push edx
push eax
mov byte [esp + 0x640], 3
call fcn.00488c00
push 1
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x63c], 2
call fcn.00405cc0
push 1
lea ecx, [esp + 0x2c0]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x26]
lea edx, [esp + 0x5f0]
push ecx
mov byte [esp + 0x2a], 0
mov byte [esp + 0x2b], 8
push edx
jmp 0x487ef6
movzx si, byte [esp + 0x10]
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
test al, 1
je 0x4865b6
push ecx
mov ecx, esp
mov dword [esp + 0x10], esp
push 6
push 0x54d6e8
call fcn.0048a680
lea eax, [esp + 0x60c]
push eax
call fcn.0049de10
add esp, 8
mov ecx, dword [0x531160]
mov byte [esp + 0x638], 4
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.00407be0
mov byte [esp + 0x638], 1
push 1
lea ecx, [esp + 0x60c]
jmp 0x486722
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
test al, 2
je 0x486617
push ecx
mov ecx, esp
mov dword [esp + 0x10], esp
push 6
push 0x54d6e0
call fcn.0048a680
lea edx, [esp + 0x624]
push edx
call fcn.0049de10
add esp, 8
mov ecx, dword [0x531160]
mov byte [esp + 0x638], 5
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.00407be0
mov byte [esp + 0x638], 1
push 1
lea ecx, [esp + 0x624]
jmp 0x486722
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
test al, 4
je 0x486678
push ecx
mov ecx, esp
mov dword [esp + 0x10], esp
push 6
push 0x54d6d8
call fcn.0048a680
lea edx, [esp + 0x5fc]
push edx
call fcn.0049de10
add esp, 8
mov ecx, dword [0x531160]
mov byte [esp + 0x638], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.00407be0
mov byte [esp + 0x638], 1
push 1
lea ecx, [esp + 0x5fc]
jmp 0x486722
push esi
lea ecx, [ebp + 8]
call fcn.0048a9e0
push ecx
test al, 8
mov ecx, esp
je 0x4866d6
mov dword [esp + 0x10], esp
push 6
push 0x54d6d0
call fcn.0048a680
lea edx, [esp + 0x48c]
push edx
call fcn.0049de10
add esp, 8
mov ecx, dword [0x531160]
mov byte [esp + 0x638], 7
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.00407be0
mov byte [esp + 0x638], 1
push 1
lea ecx, [esp + 0x48c]
jmp 0x486722
mov dword [esp + 0x10], esp
push 6
push 0x54d6c8
call fcn.0048a680
lea edx, [esp + 0x554]
push edx
call fcn.0049de10
add esp, 8
mov ecx, dword [0x531160]
mov byte [esp + 0x638], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x20]
call fcn.00407be0
mov byte [esp + 0x638], 1
push 1
lea ecx, [esp + 0x554]
call fcn.00405cc0
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1b8]
push edx
mov word [esp + 0x1b8], bx
call fcn.0040d030
mov ax, word [esp + 0x1b4]
lea ecx, [esp + 0x1b8]
push ecx
lea ecx, [esp + 0x450]
mov byte [esp + 0x63c], 9
mov word [esp + 0x44c], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x448]
lea eax, [esp + 0x4a0]
push edx
push eax
mov byte [esp + 0x640], 0xa
call fcn.00488c00
push 1
lea ecx, [esp + 0x450]
mov byte [esp + 0x63c], 9
call fcn.00405cc0
push 1
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x5b8]
push ecx
mov byte [esp + 0x40], 1
mov byte [esp + 0x41], 8
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x531da0]
fstp qword [esp]
push str._.2f
push ecx
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea eax, [esp + 0x14]
lea ecx, [esp + 0x258]
push eax
mov word [esp + 0x258], bx
call fcn.0040d030
mov cx, word [esp + 0x254]
lea edx, [esp + 0x258]
mov word [esp + 0x330], cx
push edx
lea ecx, [esp + 0x338]
mov byte [esp + 0x63c], 0xb
call fcn.0040d030
lea eax, [esp + 0x330]
lea ecx, [esp + 0x4b0]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0xc
call fcn.00488c00
push 1
lea ecx, [esp + 0x338]
mov byte [esp + 0x63c], 0xb
call fcn.00405cc0
push 1
lea ecx, [esp + 0x25c]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x4e]
mov byte [esp + 0x4e], 2
mov byte [esp + 0x4f], 9
push edx
lea eax, [esp + 0x56c]
jmp 0x487ef5
movzx cx, byte [esp + 0x10]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea edx, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x5316d8]
fsub qword [0x531588]
fstp qword [esp]
push str._.0f
push edx
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408160
lea ecx, [esp + 0x14]
mov word [esp + 0x1dc], bx
push ecx
lea ecx, [esp + 0x1e4]
call fcn.0040d030
mov dx, word [esp + 0x1dc]
lea eax, [esp + 0x1e0]
push eax
lea ecx, [esp + 0x3d8]
mov byte [esp + 0x63c], 0xd
mov word [esp + 0x3d4], dx
call fcn.0040d030
lea ecx, [esp + 0x3d0]
lea edx, [esp + 0x4c0]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov byte [esp + 0x640], 0xe
call fcn.00488c00
push 1
lea ecx, [esp + 0x3d8]
mov byte [esp + 0x63c], 0xd
call fcn.00405cc0
push 1
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea eax, [esp + 0x52]
lea ecx, [esp + 0x5e8]
push eax
mov byte [esp + 0x56], 3
mov byte [esp + 0x57], 0xa
push ecx
jmp 0x487ef6
movzx dx, byte [esp + 0x10]
push edx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
sub eax, 0x80
mov dword [esp + 0x14], eax
lea eax, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x531790]
fstp qword [esp]
push str._.2f
push eax
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x2a8]
push edx
mov word [esp + 0x2a8], bx
call fcn.0040d030
mov ax, word [esp + 0x2a4]
lea ecx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x360]
mov byte [esp + 0x63c], 0xf
mov word [esp + 0x35c], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x358]
lea eax, [esp + 0x4d0]
push edx
push eax
mov byte [esp + 0x640], 0x10
call fcn.00488c00
push 1
lea ecx, [esp + 0x360]
mov byte [esp + 0x63c], 0xf
call fcn.00405cc0
push 1
lea ecx, [esp + 0x2ac]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x50]
lea edx, [esp + 0x578]
push ecx
mov byte [esp + 0x54], 4
mov byte [esp + 0x55], 9
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
sub eax, 0x80
lea ecx, [esp + 0x74]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x531790]
fstp qword [esp]
push str._.2f
push ecx
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea eax, [esp + 0x14]
lea ecx, [esp + 0x208]
push eax
mov word [esp + 0x208], bx
call fcn.0040d030
mov cx, word [esp + 0x204]
lea edx, [esp + 0x208]
mov word [esp + 0x420], cx
push edx
lea ecx, [esp + 0x428]
mov byte [esp + 0x63c], 0x11
call fcn.0040d030
lea eax, [esp + 0x420]
lea ecx, [esp + 0x4e0]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x12
call fcn.00488c00
push 1
lea ecx, [esp + 0x428]
mov byte [esp + 0x63c], 0x11
call fcn.00405cc0
push 1
lea ecx, [esp + 0x20c]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x4c]
mov byte [esp + 0x4c], 5
mov byte [esp + 0x4d], 9
push edx
lea eax, [esp + 0x5cc]
jmp 0x487ef5
movzx cx, byte [esp + 0x10]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea edx, [esp + 0x6c]
push eax
push str._.0f
push edx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408160
lea ecx, [esp + 0x14]
mov word [esp + 0x27c], bx
push ecx
lea ecx, [esp + 0x284]
call fcn.0040d030
mov dx, word [esp + 0x27c]
lea eax, [esp + 0x280]
push eax
lea ecx, [esp + 0x388]
mov byte [esp + 0x63c], 0x13
mov word [esp + 0x384], dx
call fcn.0040d030
lea ecx, [esp + 0x380]
lea edx, [esp + 0x4f0]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov byte [esp + 0x640], 0x14
call fcn.00488c00
push 1
lea ecx, [esp + 0x388]
mov byte [esp + 0x63c], 0x13
call fcn.00405cc0
push 1
lea ecx, [esp + 0x284]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea eax, [esp + 0x2e]
lea ecx, [esp + 0x588]
push eax
mov byte [esp + 0x32], 7
mov byte [esp + 0x33], 0xb
push ecx
jmp 0x487ef6
movzx dx, byte [esp + 0x10]
push edx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x531370]
fstp qword [esp]
push str._.2f
push eax
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x230]
push edx
mov word [esp + 0x230], bx
call fcn.0040d030
mov ax, word [esp + 0x22c]
lea ecx, [esp + 0x230]
push ecx
lea ecx, [esp + 0x400]
mov byte [esp + 0x63c], 0x15
mov word [esp + 0x3fc], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3f8]
lea eax, [esp + 0x500]
push edx
push eax
mov byte [esp + 0x640], 0x16
call fcn.00488c00
push 1
lea ecx, [esp + 0x400]
mov byte [esp + 0x63c], 0x15
call fcn.00405cc0
push 1
lea ecx, [esp + 0x234]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x48]
lea edx, [esp + 0x618]
push ecx
mov byte [esp + 0x4c], 8
mov byte [esp + 0x4d], 0xc
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x6c]
push eax
push str._.0f
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea eax, [esp + 0x14]
lea ecx, [esp + 0x2d0]
push eax
mov word [esp + 0x2d0], bx
call fcn.0040d030
mov cx, word [esp + 0x2cc]
lea edx, [esp + 0x2d0]
mov word [esp + 0x3a8], cx
push edx
lea ecx, [esp + 0x3b0]
mov byte [esp + 0x63c], 0x17
call fcn.0040d030
lea eax, [esp + 0x3a8]
lea ecx, [esp + 0x510]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x18
call fcn.00488c00
push 1
lea ecx, [esp + 0x3b0]
mov byte [esp + 0x63c], 0x17
call fcn.00405cc0
push 1
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x32]
mov byte [esp + 0x32], 9
mov byte [esp + 0x33], 0xd
push edx
lea eax, [esp + 0x59c]
jmp 0x487ef5
movzx cx, byte [esp + 0x10]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea edx, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x5316d8]
fsub qword [0x531588]
fstp qword [esp]
push str._.0f
push edx
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408160
lea ecx, [esp + 0x14]
mov word [esp + 0x1a0], bx
push ecx
lea ecx, [esp + 0x1a8]
call fcn.0040d030
mov dx, word [esp + 0x1a0]
lea eax, [esp + 0x1a4]
push eax
lea ecx, [esp + 0x310]
mov byte [esp + 0x63c], 0x19
mov word [esp + 0x30c], dx
call fcn.0040d030
lea ecx, [esp + 0x308]
lea edx, [esp + 0x520]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov byte [esp + 0x640], 0x1a
call fcn.00488c00
push 1
lea ecx, [esp + 0x310]
mov byte [esp + 0x63c], 0x19
call fcn.00405cc0
push 1
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x5d8]
push eax
mov byte [esp + 0x44], 0xa
mov byte [esp + 0x45], 0xa
push ecx
jmp 0x487ef6
movzx dx, byte [esp + 0x10]
push edx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x531da0]
fstp qword [esp]
push str._.2f
push eax
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x1cc]
push edx
mov word [esp + 0x1cc], bx
call fcn.0040d030
mov ax, word [esp + 0x1c8]
lea ecx, [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x324]
mov byte [esp + 0x63c], 0x1b
mov word [esp + 0x320], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x31c]
lea eax, [esp + 0x530]
push edx
push eax
mov byte [esp + 0x640], 0x1c
call fcn.00488c00
push 1
lea ecx, [esp + 0x324]
mov byte [esp + 0x63c], 0x1b
call fcn.00405cc0
push 1
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x36]
lea edx, [esp + 0x5a8]
push ecx
mov byte [esp + 0x3a], 0xb
mov byte [esp + 0x3b], 9
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub esp, 8
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x74]
fild dword [esp + 0x14]
fmul qword [0x531328]
fstp qword [esp]
push str._.1f
push ecx
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1f4]
push eax
mov word [esp + 0x1f4], bx
call fcn.0040d030
mov cx, word [esp + 0x1f0]
lea edx, [esp + 0x1f4]
mov word [esp + 0x344], cx
push edx
lea ecx, [esp + 0x34c]
mov byte [esp + 0x63c], 0x1d
call fcn.0040d030
lea eax, [esp + 0x344]
lea ecx, [esp + 0x540]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x1e
call fcn.00488c00
push 1
lea ecx, [esp + 0x34c]
mov byte [esp + 0x63c], 0x1d
call fcn.00405cc0
push 1
lea ecx, [esp + 0x1f8]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x42]
mov byte [esp + 0x42], 0xc
mov byte [esp + 0x43], 0xe
push edx
lea eax, [esp + 0x47c]
jmp 0x487ef5
add eax, 0xffffee91
cmp eax, 0xca
ja case.0x487200.4474
xor ecx, ecx
mov cl, byte [eax + 0x48800c]
jmp dword [ecx*4 + 0x487fdc]
movzx dx, byte [esp + 0x10]
push edx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
sub eax, 0x28
push eax
lea eax, [esp + 0x70]
push str._.0f
push eax
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x21c]
push edx
mov word [esp + 0x21c], bx
call fcn.0040d030
mov ax, word [esp + 0x218]
lea ecx, [esp + 0x21c]
push ecx
lea ecx, [esp + 0x374]
mov byte [esp + 0x63c], 0x1f
mov word [esp + 0x370], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x36c]
lea eax, [esp + 0x480]
push edx
push eax
mov byte [esp + 0x640], 0x20
call fcn.00488c00
push 1
lea ecx, [esp + 0x374]
mov byte [esp + 0x63c], 0x1f
call fcn.00405cc0
push 1
lea ecx, [esp + 0x220]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x3a]
lea edx, [esp + 0x498]
push ecx
mov byte [esp + 0x3e], 0xd
mov byte [esp + 0x3f], 0xa
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x6c]
push eax
push str._.0f
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x6c]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea eax, [esp + 0x14]
lea ecx, [esp + 0x244]
push eax
mov word [esp + 0x244], bx
call fcn.0040d030
mov cx, word [esp + 0x240]
lea edx, [esp + 0x244]
mov word [esp + 0x394], cx
push edx
lea ecx, [esp + 0x39c]
mov byte [esp + 0x63c], 0x21
call fcn.0040d030
lea eax, [esp + 0x394]
lea ecx, [esp + 0x4a8]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x22
call fcn.00488c00
push 1
lea ecx, [esp + 0x39c]
mov byte [esp + 0x63c], 0x21
call fcn.00405cc0
push 1
lea ecx, [esp + 0x248]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x46]
mov byte [esp + 0x46], 0xe
mov byte [esp + 0x47], 0xf
push edx
lea eax, [esp + 0x4bc]
jmp 0x487ef5
movzx cx, byte [esp + 0x10]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea edx, [esp + 0x6c]
push eax
push str._.2f
push edx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408160
lea ecx, [esp + 0x14]
mov word [esp + 0x268], bx
push ecx
lea ecx, [esp + 0x270]
call fcn.0040d030
mov dx, word [esp + 0x268]
lea eax, [esp + 0x26c]
push eax
lea ecx, [esp + 0x3c4]
mov byte [esp + 0x63c], 0x23
mov word [esp + 0x3c0], dx
call fcn.0040d030
lea ecx, [esp + 0x3bc]
lea edx, [esp + 0x4c8]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov byte [esp + 0x640], 0x24
call fcn.00488c00
push 1
lea ecx, [esp + 0x3c4]
mov byte [esp + 0x63c], 0x23
call fcn.00405cc0
push 1
lea ecx, [esp + 0x270]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea eax, [esp + 0x3e]
lea ecx, [esp + 0x4d8]
push eax
mov byte [esp + 0x42], 0xf
mov byte [esp + 0x43], 0xb
push ecx
jmp 0x487ef6
movzx dx, byte [esp + 0x10]
push edx
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
push eax
lea eax, [esp + 0x70]
push str._.1f
push eax
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x294]
push edx
mov word [esp + 0x294], bx
call fcn.0040d030
mov ax, word [esp + 0x290]
lea ecx, [esp + 0x294]
push ecx
lea ecx, [esp + 0x3ec]
mov byte [esp + 0x63c], 0x25
mov word [esp + 0x3e8], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x3e4]
lea eax, [esp + 0x4e8]
push edx
push eax
mov byte [esp + 0x640], 0x26
call fcn.00488c00
push 1
lea ecx, [esp + 0x3ec]
mov byte [esp + 0x63c], 0x25
call fcn.00405cc0
push 1
lea ecx, [esp + 0x298]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x4a]
lea edx, [esp + 0x4f8]
push ecx
mov byte [esp + 0x4e], 0x10
mov byte [esp + 0x4f], 0x10
push edx
jmp 0x487ef6
movzx si, byte [esp + 0x10]
lea ecx, [ebp + 8]
lea eax, [esi + 1]
push eax
call fcn.0048a9e0
xor edx, edx
push esi
mov dl, al
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x6c]
mov ch, al
push ecx
push 0x549394
push edx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x6c]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00408160
lea ecx, [esp + 0x14]
mov word [esp + 0x18c], bx
push ecx
lea ecx, [esp + 0x194]
call fcn.0040d030
mov dx, word [esp + 0x18c]
lea eax, [esp + 0x190]
push eax
lea ecx, [esp + 0x414]
mov byte [esp + 0x63c], 0x27
mov word [esp + 0x410], dx
call fcn.0040d030
lea ecx, [esp + 0x40c]
lea edx, [esp + 0x508]
push ecx
mov ecx, dword [ebp + 0xc]
push edx
mov byte [esp + 0x640], 0x28
call fcn.00488c00
push 1
lea ecx, [esp + 0x414]
mov byte [esp + 0x63c], 0x27
call fcn.00405cc0
push 1
lea ecx, [esp + 0x194]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x518]
push eax
mov byte [esp + 0x2c], 0x11
mov byte [esp + 0x2d], 0x11
push ecx
jmp 0x487ef6
movzx si, byte [esp + 0x10]
lea ecx, [ebp + 8]
lea edx, [esi + 1]
push edx
call fcn.0048a9e0
mov dl, al
push esi
and edx, 0xff
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov ch, al
sub esp, 8
or edx, ecx
lea eax, [esp + 0x74]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x5312e8]
fstp qword [esp]
push str._.0f
push eax
call fcn.00514b75
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408160
lea edx, [esp + 0x14]
lea ecx, [esp + 0x2e4]
push edx
mov word [esp + 0x2e4], bx
call fcn.0040d030
mov ax, word [esp + 0x2e0]
lea ecx, [esp + 0x2e4]
push ecx
lea ecx, [esp + 0x43c]
mov byte [esp + 0x63c], 0x29
mov word [esp + 0x438], ax
call fcn.0040d030
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x434]
lea eax, [esp + 0x528]
push edx
push eax
mov byte [esp + 0x640], 0x2a
call fcn.00488c00
push 1
lea ecx, [esp + 0x43c]
mov byte [esp + 0x63c], 0x29
call fcn.00405cc0
push 1
lea ecx, [esp + 0x2e8]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x44]
lea edx, [esp + 0x538]
push ecx
mov byte [esp + 0x48], 0x12
mov byte [esp + 0x49], 0x12
push edx
jmp 0x487ef6
movzx si, byte [esp + 0x10]
lea ecx, [ebp + 8]
lea eax, [esi + 1]
push eax
call fcn.0048a9e0
xor edx, edx
push esi
mov dl, al
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov ecx, dword [esp + 0xc]
mov ch, al
mov eax, ecx
lea edx, [eax + eax*4]
lea eax, [esp + 0x6c]
push edx
push 0x549394
push eax
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov esi, ecx
lea ecx, [esp + 0x18]
push esi
mov dword [esp + 0x14], esi
call fcn.00408220
test al, al
je 0x48787d
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00408200
mov cl, byte [esp + 0x14]
push 0
mov byte [esp + 0x130], cl
lea ecx, [esp + 0x130]
mov word [esp + 0x12c], bx
call fcn.00405cc0
mov edx, dword [0x531160]
lea eax, [esp + 0x14]
push edx
push 0
push eax
lea ecx, [esp + 0x138]
call fcn.00407be0
mov cx, word [esp + 0x128]
lea edx, [esp + 0x12c]
mov word [esp + 0x45c], cx
push edx
lea ecx, [esp + 0x464]
mov byte [esp + 0x63c], 0x2b
call fcn.0040d030
lea eax, [esp + 0x45c]
lea ecx, [esp + 0x470]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x2c
call fcn.00488c00
push 1
lea ecx, [esp + 0x464]
mov byte [esp + 0x63c], 0x2b
call fcn.00405cc0
push 1
lea ecx, [esp + 0x130]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea edx, [esp + 0x2a]
mov byte [esp + 0x2a], 0x13
mov byte [esp + 0x2b], 0x13
push edx
lea eax, [esp + 0x564]
jmp 0x487ef5
movzx si, byte [esp + 0x10]
lea ecx, [esi + 1]
push ecx
lea ecx, [ebp + 8]
call fcn.0048a9e0
xor edx, edx
push esi
mov dl, al
lea ecx, [ebp + 8]
mov dword [esp + 0x10], edx
call fcn.0048a9e0
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x6c]
mov dh, al
mov eax, edx
lea eax, [eax + eax*4]
push eax
push 0x549394
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov esi, ecx
lea ecx, [esp + 0x18]
push esi
mov dword [esp + 0x14], esi
call fcn.00408220
test al, al
je 0x4879d4
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00408200
mov cl, byte [esp + 0x14]
push 0
mov byte [esp + 0xf4], cl
lea ecx, [esp + 0xf4]
mov word [esp + 0xf0], bx
call fcn.00405cc0
mov edx, dword [0x531160]
lea eax, [esp + 0x14]
push edx
push 0
push eax
lea ecx, [esp + 0xfc]
call fcn.00407be0
mov cx, word [esp + 0xec]
mov dl, byte [esp + 0xf0]
mov word [esp + 0x178], cx
push 0
lea ecx, [esp + 0x180]
mov byte [esp + 0x63c], 0x2d
mov byte [esp + 0x180], dl
call fcn.00405cc0
mov eax, dword [0x531160]
lea ecx, [esp + 0xf0]
push eax
push 0
push ecx
lea ecx, [esp + 0x188]
call fcn.00407be0
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x178]
lea eax, [esp + 0x570]
push edx
push eax
mov byte [esp + 0x640], 0x2e
call fcn.00488c00
push 1
lea ecx, [esp + 0x180]
mov byte [esp + 0x63c], 0x2d
call fcn.00405cc0
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x580]
push ecx
mov byte [esp + 0x30], 0x14
mov byte [esp + 0x31], 0x13
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x6c]
push eax
push 0x549394
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov esi, ecx
lea ecx, [esp + 0x18]
push esi
mov dword [esp + 0x14], esi
call fcn.00408220
test al, al
je 0x487b36
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00408200
mov cl, byte [esp + 0x14]
push 0
mov byte [esp + 0x11c], cl
lea ecx, [esp + 0x11c]
mov word [esp + 0x118], bx
call fcn.00405cc0
mov edx, dword [0x531160]
lea eax, [esp + 0x14]
push edx
push 0
push eax
lea ecx, [esp + 0x124]
call fcn.00407be0
mov cx, word [esp + 0x114]
mov dl, byte [esp + 0x118]
mov word [esp + 0x164], cx
push 0
lea ecx, [esp + 0x16c]
mov byte [esp + 0x63c], 0x2f
mov byte [esp + 0x16c], dl
call fcn.00405cc0
mov eax, dword [0x531160]
lea ecx, [esp + 0x118]
push eax
push 0
push ecx
lea ecx, [esp + 0x174]
call fcn.00407be0
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x164]
lea eax, [esp + 0x590]
push edx
push eax
mov byte [esp + 0x640], 0x30
call fcn.00488c00
push 1
lea ecx, [esp + 0x16c]
mov byte [esp + 0x63c], 0x2f
call fcn.00405cc0
push 1
lea ecx, [esp + 0x11c]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x5a0]
push ecx
mov byte [esp + 0x34], 0x15
mov byte [esp + 0x35], 0x14
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x6c]
push eax
push 0x549394
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov esi, ecx
lea ecx, [esp + 0x18]
push esi
mov dword [esp + 0x14], esi
call fcn.00408220
test al, al
je 0x487c98
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00408200
mov cl, byte [esp + 0x14]
push 0
mov byte [esp + 0x108], cl
lea ecx, [esp + 0x108]
mov word [esp + 0x104], bx
call fcn.00405cc0
mov edx, dword [0x531160]
lea eax, [esp + 0x14]
push edx
push 0
push eax
lea ecx, [esp + 0x110]
call fcn.00407be0
mov cx, word [esp + 0x100]
mov dl, byte [esp + 0x104]
mov word [esp + 0x150], cx
push 0
lea ecx, [esp + 0x158]
mov byte [esp + 0x63c], 0x31
mov byte [esp + 0x158], dl
call fcn.00405cc0
mov eax, dword [0x531160]
lea ecx, [esp + 0x104]
push eax
push 0
push ecx
lea ecx, [esp + 0x160]
call fcn.00407be0
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x150]
lea eax, [esp + 0x5b0]
push edx
push eax
mov byte [esp + 0x640], 0x32
call fcn.00488c00
push 1
lea ecx, [esp + 0x158]
mov byte [esp + 0x63c], 0x31
call fcn.00405cc0
push 1
lea ecx, [esp + 0x108]
mov byte [esp + 0x63c], 1
call fcn.00405cc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x5c0]
push ecx
mov byte [esp + 0x38], 0x16
mov byte [esp + 0x39], 0x14
push edx
jmp 0x487ef6
movzx ax, byte [esp + 0x10]
push eax
lea ecx, [ebp + 8]
call fcn.0048a9e0
and eax, 0xff
lea ecx, [esp + 0x6c]
push eax
push 0x549394
push ecx
call fcn.00514b75
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov esi, ecx
lea ecx, [esp + 0x18]
push esi
mov dword [esp + 0x14], esi
call fcn.00408220
test al, al
je 0x487dfc
mov edi, dword [esp + 0x18]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov byte [ecx + eax], 0
mov dl, byte [esp + 0x14]
xor esi, esi
push esi
lea ecx, [esp + 0x60]
mov word [esp + 0x5c], bx
mov byte [esp + 0x60], dl
call fcn.00405cc0
mov eax, dword [0x531160]
lea ecx, [esp + 0x14]
push eax
push esi
push ecx
lea ecx, [esp + 0x68]
call fcn.00407be0
mov dx, word [esp + 0x58]
mov al, byte [esp + 0x5c]
push esi
lea ecx, [esp + 0x144]
mov byte [esp + 0x63c], 0x33
mov word [esp + 0x140], dx
mov byte [esp + 0x144], al
call fcn.00405cc0
mov ecx, dword [0x531160]
lea edx, [esp + 0x5c]
push ecx
push esi
push edx
lea ecx, [esp + 0x14c]
call fcn.00407be0
lea eax, [esp + 0x13c]
lea ecx, [esp + 0x5d0]
push eax
push ecx
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x640], 0x34
call fcn.00488c00
push 1
lea ecx, [esp + 0x144]
mov byte [esp + 0x63c], 0x33
call fcn.00405cc0
mov eax, dword [esp + 0x60]
mov byte [esp + 0x638], 1
cmp eax, esi
je 0x487ed3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x487eca
cmp al, 0xff
je 0x487eca
dec al
mov byte [ecx], al
jmp 0x487ed3
push ecx
call fcn.00514120
add esp, 4
lea edx, [esp + 0x38]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov byte [esp + 0x38], 0x17
mov byte [esp + 0x39], 0x14
push edx
lea eax, [esp + 0x5e4]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.00488f70
mov bl, byte [esp + 0x10]
lea ecx, [ebp + 8]
add bl, 2
mov byte [esp + 0x10], bl
call fcn.0048ab50
mov edx, dword [esp + 0x10]
movsx ecx, ax
sub ecx, 8
and edx, 0xff
cmp edx, ecx
jl 0x4862b3
xor esi, esi
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x487f50
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x487f47
cmp al, 0xff
je 0x487f47
dec al
mov byte [ecx], al
jmp 0x487f50
push ecx
call fcn.00514120
add esp, 4
lea ecx, [ebp + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x638], 0xffffffff
call fcn.0048a720
mov ecx, dword [esp + 0x630]
pop edi
pop esi
xor ax, ax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc