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

Disassembly:
mov ecx, dword [0x817cc4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x58b3d9
sub esp, 0xf0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov ecx, dword [esp + 0xf8]
mov dword [esp + 4], ecx
lea edx, [0x5d74d7]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.004aeb40
movzx eax, byte [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
test al, al
je 0x58a087
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x94], ebx
test eax, eax
jne 0x589d7e
xor ebp, ebp
jmp 0x589db2
mov dword [esp], ebx
mov dword [esp + 4], eax
lea ecx, [0x6abdb8]
mov dword [esp + 8], ecx
call fcn.004adfa0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x94]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x58a06a
test edx, edx
jne 0x589dc4
xor ebp, ebp
jmp 0x589df8
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x6abdb8]
mov dword [esp + 8], eax
call fcn.004adfa0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x94]
mov ebp, eax
mov eax, dword [esp + 0x44]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x58a06a
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004ad9f0
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x589e32
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x589e40
jmp 0x58b3c0
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x589ea4
mov dword [esp + 0x68], ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x8c], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00467650
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
nop
test eax, eax
je 0x589f06
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x589f14
jmp 0x58b3a8
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
inc ecx
mov edx, dword [esp + 0xb4]
cmp eax, ecx
jae 0x589f6a
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov byte [ecx + edx - 1], 0x2f
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
call fcn.004ad9f0
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x589fae
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x589fbc
jmp 0x58b390
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ebx + ecx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x58a020
mov dword [esp + 0x34], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x68], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], eax
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00467650
mov eax, dword [esp + 0x68]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x58a1b4
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0xf8]
test eax, eax
je 0x58a22f
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x6abdb8]
mov dword [esp + 8], edx
call fcn.004adfa0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x58a22f
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
call fcn.004ad9f0
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x58a0fd
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x58a10b
jmp 0x58b378
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ebx + ecx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x58a16f
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x90], edx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00467650
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x58a1c3
mov ecx, dword [eax]
jmp 0x58a1c5
xor ecx, ecx
mov dword [esp + 0x50], ecx
lea eax, [0x5b0d00]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call fcn.0044d2d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa8], eax
lea edi, [esp + 0xc0]
xor eax, eax
call fcn.00466f54
lea eax, [0x5b24a0]
mov dword [esp], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
lea edx, [esp + 0xc0]
mov dword [esp + 8], edx
call fcn.0040d960
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xa8]
xor edx, edx
jmp 0x58a26c
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov dword [esi], ebp
lea eax, [esp + 0xc0]
mov dword [esp], eax
call fcn.0040dba0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xc0]
test ebx, ebx
je 0x58a301
inc edx
mov ebp, dword [ebx]
mov ebx, dword [ebx + 4]
cmp eax, edx
jae 0x58a2c9
mov dword [esp + 0x58], ebx
mov dword [esp + 0xa0], ebp
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x5b0d00]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
lea esi, [ecx + edx*8 - 4]
mov dword [esi], ebx
mov ebx, dword [0x817f20]
lea esi, [ecx + edx*8 - 8]
test ebx, ebx
je 0x58a24c
call fcn.00466d20
mov dword [edi], ebp
mov ebx, dword [esi]
mov dword [edi + 4], ebx
jmp 0x58a24c
mov dword [esp + 0x4c], edx
mov dword [esp + 0xa4], ecx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00409630
mov eax, dword [esp + 0xc]
lea ecx, [0x6dfc6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0046cc30
xor eax, eax
jmp 0x58a33d
mov ecx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x4c]
cmp eax, ecx
jge 0x58a9b1
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0xa4]
lea edx, [ecx + eax*8]
mov ebx, dword [edx + 4]
mov dword [esp + 0x54], ebx
mov edx, dword [edx]
mov dword [esp + 0x9c], edx
lea ebp, [0x5b24a0]
mov dword [esp], ebp
mov esi, dword [esp + 0xfc]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.0040fe10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
nop
nop
test ecx, ecx
je 0x58a3ae
lea ebx, [esp + 0xb0]
cmp ecx, ebx
je 0x58a3bc
jmp 0x58b360
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp ecx, ebx
jae 0x58a422
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x3b
mov ecx, dword [esp + 0xb0]
nop
nop
test ecx, ecx
je 0x58a44b
lea ebx, [esp + 0xb0]
cmp ecx, ebx
je 0x58a459
jmp 0x58b348
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp ecx, ebx
jae 0x58a4b7
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x20
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x58a994
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x6abdb8]
mov dword [esp + 8], edx
call fcn.004adfa0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x58a994
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004ad9f0
mov eax, dword [esp + 0xb0]
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
test eax, eax
je 0x58a533
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x58a541
jmp 0x58b330
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [ecx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x58a5a5
mov dword [esp + 0x64], ebx
mov dword [esp + 0x84], edx
mov dword [esp + 0x30], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov dword [esp + 0xac], esi
mov dword [esp + 0x60], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00467650
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
xor edx, edx
jmp 0x58a9ec
cmp edx, eax
jge 0x58a69b
mov ebx, dword [esp + 0xb0]
nop
nop
test ebx, ebx
je 0x58a61f
lea ebp, [esp + 0xb0]
cmp ebx, ebp
je 0x58a62d
jmp 0x58b318
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp ebx, ebp
jae 0x58a68f
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], 0x2a
mov ebx, dword [esp + 0xb0]
nop
nop
test ebx, ebx
je 0x58a6b8
lea ebp, [esp + 0xb0]
cmp ebx, ebp
je 0x58a6c6
jmp 0x58b300
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp ebx, ebp
jb 0x58a6e4
cmp edx, eax
jmp 0x58a730
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
mov eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], 0x3d
jge 0x58a7f3
mov edx, dword [esp + 0xb0]
nop
test edx, edx
je 0x58a75e
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x58a76c
jmp 0x58b2e8
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xb8]
lea ebx, [edx + 7]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0xb4]
cmp ebp, ebx
jae 0x58a7c6
mov dword [esp + 0x64], edx
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esi + edx], 0x2d667475
mov dword [esi + edx + 3], 0x2727382d
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb4], esi
xor edx, edx
xor ebx, ebx
jmp 0x58adf5
test eax, eax
jne 0x58a7fb
xor edx, edx
jmp 0x58a824
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x6abdb8]
mov dword [esp + 8], edx
call fcn.004adfa0
mov eax, dword [esp + 0xc]
test eax, eax
setl al
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov eax, dword [esp + 0x28]
test dl, dl
jne 0x58a8c9
mov edx, dword [esp + 0xb0]
nop
test edx, edx
je 0x58a848
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x58a856
jmp 0x58addc
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x58a8b4
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x22
xor edx, edx
xor ebx, ebx
jmp 0x58aa58
mov edx, dword [esp + 0xb0]
nop
nop
test edx, edx
je 0x58a8e6
lea ebx, [esp + 0xb0]
cmp edx, ebx
je 0x58a8f4
jmp 0x58aa3f
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [eax + ebx]
mov esi, dword [esp + 0xb4]
cmp edx, ebp
jae 0x58a94a
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x5b1040]
mov dword [esp + 0x10], ecx
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], edx
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00467650
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x58a336
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
add esp, 0xf0
ret
mov eax, dword [esp + 0xb4]
mov ecx, eax
neg eax
mov edx, dword [esp + 0xb8]
cmp edx, eax
ja 0x58a9dc
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], edx
add esp, 0xf0
ret
test ecx, ecx
je 0x58a9e5
call fcn.0045e980
call fcn.0045e9c0
mov edx, ebp
mov dword [esp + 0x64], edx
cmp edx, eax
jge 0x58a5fc
movzx ebx, byte [ecx + edx]
cmp ebx, 0x80
jge 0x58aa09
lea ebp, [edx + 1]
jmp 0x58aa2d
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0045eb20
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
lea esi, [ebx - 0x20]
cmp esi, 0x5e
jbe 0x58a9ea
cmp ebx, 9
je 0x58a9ea
jmp 0x58a5fa
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
inc edx
cmp edx, eax
jge 0x58abfa
movzx ebp, byte [edx + ecx]
xchg ebp, eax
cmp al, 0x22
xchg ebp, eax
je 0x58aa72
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
jne 0x58aa57
cmp ebx, edx
ja 0x58add3
mov ebp, edx
sub edx, ebx
mov esi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xb0]
add ebx, ecx
nop
test edx, edx
je 0x58aaa5
lea edi, [esp + 0xb0]
cmp edx, edi
je 0x58aab3
jmp 0x58adbb
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x64], ebp
mov edx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
lea ecx, [esi + edi]
mov eax, dword [esp + 0xb4]
cmp edx, ecx
jae 0x58ab15
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x78], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0xac], eax
lea ebp, [eax + edi]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
call fcn.00467650
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
test eax, eax
je 0x58ab77
lea edx, [esp + 0xb0]
cmp eax, edx
je 0x58ab85
jmp 0x58ada3
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x58abdb
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x5c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov ebx, edx
jmp 0x58aa57
cmp ebx, eax
ja 0x58ad9a
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0xb0]
add ecx, ebx
nop
test eax, eax
je 0x58ac2b
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x58ac39
jmp 0x58ad82
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [edx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x58ac97
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x74], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov dword [esp + 0xac], esi
mov dword [esp + 0x60], ebp
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00467650
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
test eax, eax
je 0x58acf5
lea ecx, [esp + 0xb0]
cmp eax, ecx
je 0x58ad03
jmp 0x58ad6a
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
inc ecx
mov edx, dword [esp + 0xb4]
cmp eax, ecx
jae 0x58ad59
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov byte [ecx + edx - 1], 0x22
jmp 0x58a336
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
mov ecx, eax
mov eax, ebx
call fcn.00466dd0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
mov eax, ebx
mov ecx, edx
call fcn.00466dd0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
inc edx
cmp edx, eax
jge 0x58b177
mov dword [esp + 0x48], edx
movzx ebp, byte [ecx + edx]
xchg ebp, eax
mov byte [esp + 0x25], al
xchg ebp, eax
lea esi, [ebp - 0x21]
xchg esi, eax
cmp al, 0x5e
xchg esi, eax
jb 0x58ae1c
mov esi, 1
jmp 0x58ae8c
xchg ebp, eax
cmp al, 0x2a
xchg ebp, eax
jne 0x58ae2a
mov esi, 1
jmp 0x58ae8c
xchg ebp, eax
cmp al, 0x27
xchg ebp, eax
jne 0x58ae38
mov esi, 1
jmp 0x58ae8c
xchg ebp, eax
cmp al, 0x25
xchg ebp, eax
jne 0x58ae46
mov esi, 1
jmp 0x58ae8c
mov dword [esp + 0x40], ebx
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
nop
lea ecx, [0x5d9ff6]
mov dword [esp], ecx
mov dword [esp + 4], 0xf
mov dword [esp + 8], eax
call fcn.004ace90
mov eax, dword [esp + 0xc]
test eax, eax
setge al
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
movzx ebp, byte [esp + 0x25]
mov esi, eax
mov eax, dword [esp + 0x28]
xchg esi, eax
test al, al
xchg esi, eax
je 0x58adf4
cmp ebx, edx
ja 0x58b2df
mov esi, edx
sub edx, ebx
mov edi, edx
neg edx
sar edx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xb0]
add ebx, ecx
nop
test edx, edx
je 0x58aece
lea ecx, [esp + 0xb0]
cmp edx, ecx
jne 0x58b2c7
mov ecx, dword [esp + 0x6c]
jmp 0x58aedc
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
lea eax, [ecx + edi]
mov esi, dword [esp + 0xb4]
cmp edx, eax
jae 0x58af40
mov dword [esp + 0x64], edi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x60], ecx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0xac], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call fcn.00467650
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb0]
nop
nop
test eax, eax
je 0x58afa2
lea edx, [esp + 0xb0]
cmp eax, edx
je 0x58afb0
jmp 0x58b2af
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
inc ebx
mov ebp, dword [esp + 0xb4]
cmp edx, ebx
jae 0x58b006
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebx
mov byte [ebx + ebp - 1], 0x25
movzx edx, byte [esp + 0x25]
mov ebx, edx
shr dl, 4
movzx edx, dl
mov ebp, dword [esp + 0xb0]
lea esi, [0x5da1bc]
movzx edx, byte [esi + edx]
nop
test ebp, ebp
je 0x58b045
lea edi, [esp + 0xb0]
cmp ebp, edi
je 0x58b053
jmp 0x58b297
lea ebp, [esp + 0xb0]
mov dword [esp + 0xb0], ebp
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
inc edi
mov eax, dword [esp + 0xb4]
cmp ebp, edi
jae 0x58b0bd
mov byte [esp + 0x27], dl
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb4], eax
movzx edx, byte [esp + 0x27]
movzx ebx, byte [esp + 0x25]
lea esi, [0x5da1bc]
mov dword [esp + 0xb8], edi
mov byte [edi + eax - 1], dl
and ebx, 0xf
mov edx, dword [esp + 0xb0]
movzx ebx, byte [ebx + esi]
nop
test edx, edx
je 0x58b0eb
lea ebp, [esp + 0xb0]
cmp edx, ebp
je 0x58b0f9
jmp 0x58b27f
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
inc ebp
mov esi, dword [esp + 0xb4]
cmp edx, ebp
jae 0x58b158
mov byte [esp + 0x26], bl
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], esi
movzx ebx, byte [esp + 0x26]
mov dword [esp + 0xb8], ebp
mov byte [ebp + esi - 1], bl
mov edx, dword [esp + 0x48]
lea ebx, [edx + 1]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
jmp 0x58adf4
cmp ebx, eax
ja 0x58b276
sub eax, ebx
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
mov eax, dword [esp + 0xb0]
add ecx, ebx
nop
test eax, eax
je 0x58b1a8
lea ebx, [esp + 0xb0]
cmp eax, ebx
je 0x58b1b6
jmp 0x58b25e
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xb8]
lea ebp, [edx + ebx]
mov esi, dword [esp + 0xb4]
cmp eax, ebp
jae 0x58b214
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x7c], ecx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x5b1040]
mov dword [esp + 0x10], eax
call fcn.0044d390
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0xac], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00467650
mov eax, dword [esp + 0x64]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], eax
jmp 0x58a336
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
mov ecx, eax
mov eax, ebx
call fcn.00466dd0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
mov eax, ebx
mov ecx, edx
call fcn.00466dd0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
lea eax, [0x5b0d00]
mov dword [esp], eax
lea eax, [0x6deee0]
mov dword [esp + 4], eax
call fcn.004379f0
nop
call fcn.00465910
jmp fcn.00589cd0