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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x78]
cmp eax, dword [ecx + 8]
jbe 0x58b978
sub esp, 0xf8
mov eax, dword [esp + 0x104]
test eax, eax
je 0x58b3ab
nop
mov ecx, eax
and eax, 0x1f
mov dword [esp + 0x4c], eax
cmp eax, 0x14
jne 0x58a99e
test ecx, 0x200
jne 0x58a955
lea edx, [0x6c4d98]
mov ebx, dword [esp + 0xfc]
jmp 0x58a97f
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov edx, dword [esp + 0x100]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, eax
mov ebx, ecx
mov eax, dword [edx + 0x6c]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 4]
test eax, eax
je 0x58b327
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x104]
cmp eax, 0x17
jne 0x58a9b4
mov edx, dword [esp + 0x100]
mov ebx, dword [edx + 4]
test ebx, ebx
sete bl
jmp 0x58a9bd
mov edx, dword [esp + 0x100]
xor ebx, ebx
test bl, bl
je 0x58aa1e
movzx ebx, byte [esp + 0x11d]
test bl, bl
je 0x58aa1e
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
movzx ebx, byte [esp + 0x108]
test bl, bl
je 0x58abd4
mov ebx, dword [esp + 0x10c]
test ebx, ebx
je 0x58abd4
lea ebx, [eax - 2]
cmp ebx, 4
ja 0x58abd4
test ecx, 0x200
jne 0x58aa60
lea ebx, [0x6c4d98]
mov ebp, dword [esp + 0xfc]
jmp 0x58aa83
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov ebp, ecx
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.004b8170
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004b5630
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], ebx
mov ebp, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebp
call fcn.004b7160
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x70]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.004af670
movzx eax, byte [esp + 0x10]
test al, al
jne 0x58ab83
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
jmp 0x58abd4
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
movzx ebx, byte [esp + 0x108]
test bl, bl
je 0x58ad26
mov ebx, dword [esp + 0x10c]
test ebx, ebx
jne 0x58ad26
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x104]
test edx, 0x200
jne 0x58ac3d
lea ebx, [0x6c4d98]
mov ebp, dword [esp + 0xfc]
jmp 0x58ac67
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov ebp, ecx
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.004b8090
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.004af670
movzx eax, byte [esp + 0x10]
test al, al
jne 0x58acd5
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
jmp 0x58ad26
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
test ecx, 0x200
jne 0x58ad3d
lea ebx, [0x6c4d98]
mov ebp, dword [esp + 0xfc]
jmp 0x58ad72
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x100]
mov ebx, eax
mov ebp, ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x104]
mov esi, dword [0x854af4]
cmp dword [0x854af0], ebx
je 0x58ad88
test ecx, 0x200
jmp 0x58adc3
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00403790
movzx eax, byte [esp + 0xc]
test al, al
jne 0x58b131
mov eax, dword [esp + 0x104]
test eax, 0x200
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
jne 0x58add4
lea ebx, [0x6c4d98]
mov ebp, dword [esp + 0xfc]
jmp 0x58adf7
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov ebp, ecx
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.00586ad0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 0x10]
movzx ebx, byte [esp + 0x11]
test bl, bl
je 0x58b043
test cl, cl
jne 0x58b035
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x58ae9a
cmp eax, 0x17
je 0x58ae9a
lea eax, [0x66a657]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0x2b
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov dword [esp + 4], 0x2b
call fcn.004091a0
mov eax, dword [esp + 8]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [0x6c3b08]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0xf8
ret
mov byte [esp + 0x37], dl
mov ebx, dword [esp + 0x114]
test ebx, ebx
je 0x58af16
cmp eax, 0x13
jne 0x58aeb2
test ebx, ebx
jmp 0x58af1d
lea eax, [0x66b940]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0x2f
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], 0x2f
call fcn.004091a0
mov eax, dword [esp + 8]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [0x6c3b08]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0xf8
ret
cmp eax, 0x13
jne 0x58af86
test ebx, ebx
jne 0x58b807
mov eax, dword [esp + 0x4c]
cmp eax, 0x18
jne 0x58af3a
mov ecx, dword [esp + 0x100]
mov ebx, dword [ecx]
mov ebp, dword [ecx + 4]
jmp 0x58af77
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
call fcn.004b76e0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x100]
movzx edx, byte [esp + 0x37]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x50], ebx
xor esi, esi
jmp 0x58b813
cmp eax, 0x17
jne 0x58b422
cmp ecx, 0x18
je 0x58b01c
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.0046293b
mov eax, dword [esp + 0x68]
lea ecx, [0x656ae0]
cmp eax, ecx
jne 0x58b7f1
lea edi, [esp + 0x9c]
call fcn.00462e1e
lea edi, [esp]
lea esi, [esp + 0x9c]
call fcn.00462e1e
call fcn.005887b0
movzx eax, byte [esp + 0x14]
test al, al
je 0x58b026
movzx edx, byte [esp + 0x37]
mov eax, 0x18
jmp 0x58b422
movzx edx, byte [esp + 0x37]
mov eax, 0x17
jmp 0x58b422
mov eax, dword [esp + 0x104]
test eax, 0x200
jmp 0x58b04f
mov eax, dword [esp + 0x104]
test eax, 0x200
jne 0x58b060
lea eax, [0x6c4d98]
mov ecx, dword [esp + 0xfc]
jmp 0x58b086
mov ecx, dword [esp + 0xfc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004b77c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
test eax, eax
je 0x58b09d
mov eax, dword [eax + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
lea eax, [0x66059c]
mov dword [esp], eax
mov dword [esp + 4], 0x13
lea eax, [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c4630
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x94]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004091a0
mov eax, dword [esp + 8]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [0x6c3b08]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0xf8
ret
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004b5ee0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0xd4]
xor eax, eax
call fcn.00462937
mov eax, dword [esp + 0x68]
lea ecx, [0x643f40]
cmp eax, ecx
jne 0x58b40c
lea edi, [esp + 0xd4]
call fcn.00462df6
lea edi, [esp + 0xb0]
lea esi, [esp + 0xd4]
call fcn.00462df6
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xd0]
test eax, eax
jne 0x58b2e2
lea eax, [0x63cd80]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xc0]
movzx ebp, byte [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 8
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
xchg ebp, eax
mov byte [esp + 0x18], al
xchg ebp, eax
call fcn.00587c40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov edx, dword [esp + 0x5c]
mov dword [edx + 8], ecx
mov ebx, dword [0x87bd00]
test ebx, ebx
jne 0x58b25c
mov dword [edx + 0xc], eax
jmp 0x58b264
lea edi, [edx + 0xc]
call fcn.004626c0
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x10], ecx
mov ecx, dword [0x87bd00]
test ecx, ecx
jne 0x58b2a9
mov dword [edx + 0x14], eax
jmp 0x58b2b1
lea edi, [edx + 0x14]
call fcn.004626c0
lea eax, [0x6c3d40]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 8], eax
call fcn.004b5630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea edi, [esp + 0xc]
lea esi, [esp + 0x108]
call fcn.00462e14
call fcn.0058a900
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], ebx
add esp, 0xf8
ret
lea eax, [0x666018]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004c1b70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
add esp, 0xf8
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x627be0]
mov dword [esp + 8], eax
call fcn.00408df0
movzx ecx, byte [esp + 0x11c]
test cl, cl
je 0x58b498
cmp eax, 0x10
jne 0x58b43a
mov eax, 0x11
jmp 0x58b498
lea eax, [0x6643d2]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0x1a
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
call fcn.004091a0
mov eax, dword [esp + 8]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [0x6c3b08]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0xf8
ret
mov dword [esp + 0x3c], eax
cmp eax, 0x11
jne 0x58b4ad
test cl, cl
jne 0x58b4ad
mov byte [esp + 0x11c], 1
lea eax, [0x63cd80]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 8], ecx
lea edi, [esp + 0xc]
lea esi, [esp + 0x108]
call fcn.00462e14
call fcn.005894e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x58]
mov dword [esi + 0x10], ecx
mov ecx, dword [0x87bd00]
test ecx, ecx
jne 0x58b522
mov dword [esi + 0x14], eax
jmp 0x58b52a
lea edi, [esi + 0x14]
call fcn.004626c0
test edx, edx
jne 0x58b7c6
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x110]
test ecx, ecx
je 0x58b71a
movzx edx, byte [esp + 0x10a]
test dl, dl
je 0x58b563
mov edx, 1
jmp 0x58b57b
movzx edx, byte [esp + 0x10b]
test dl, dl
je 0x58b576
mov edx, 3
jmp 0x58b57b
mov edx, 2
movzx ebx, byte [esp + 0x109]
test bl, bl
jne 0x58b58e
mov ecx, dword [ecx]
jmp 0x58b720
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 8
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
movzx edx, byte [esp + 0x37]
mov byte [esp + 0x18], dl
call fcn.00587c40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov edx, dword [esp + 0x58]
mov dword [edx + 8], ecx
mov ebx, dword [0x87bd00]
test ebx, ebx
jne 0x58b60b
mov dword [edx + 0xc], eax
jmp 0x58b613
lea edi, [edx + 0xc]
call fcn.004626c0
lea eax, [0x63cd80]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
lea ecx, [0x6c3d40]
mov dword [eax + 0x10], ecx
mov edx, dword [0x87bd00]
test edx, edx
jne 0x58b645
mov edx, dword [esp + 0x58]
mov dword [eax + 0x14], edx
jmp 0x58b653
lea edi, [eax + 0x14]
mov eax, dword [esp + 0x58]
call fcn.004626c0
mov edx, eax
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x110]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x54]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 8
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
add eax, ecx
mov dword [esp + 0x14], eax
mov byte [esp + 0x18], 1
call fcn.00587c40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov edx, dword [esp + 0x54]
mov dword [edx + 8], ecx
mov ecx, dword [0x87bd00]
test ecx, ecx
jne 0x58b6e1
mov dword [edx + 0xc], eax
jmp 0x58b6e9
lea edi, [edx + 0xc]
call fcn.004626c0
lea eax, [0x6c3d40]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x58]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [esp + 8], 8
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x37]
mov byte [esp + 0x18], al
call fcn.00587c40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409220
mov eax, dword [esp + 0xc]
lea ecx, [0x6c3ff8]
mov edx, dword [esp + 0x58]
mov dword [edx + 8], ecx
mov ecx, dword [0x87bd00]
test ecx, ecx
jne 0x58b78d
mov dword [edx + 0xc], eax
jmp 0x58b795
lea edi, [edx + 0xc]
call fcn.004626c0
lea eax, [0x6c3d40]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0xf8
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebp
add esp, 0xf8
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x627be0]
mov dword [esp + 8], eax
call fcn.00408df0
mov eax, ebx
jmp 0x58b422
movzx edx, byte [esp + 0x37]
cmp esi, ebp
jge 0x58b96c
movzx edi, byte [ebx + esi]
cmp edi, 0x80
jge 0x58b82a
inc esi
jmp 0x58b85a
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.0045cd90
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x100]
movzx edx, byte [esp + 0x37]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x38]
cmp edi, 0x80
jge 0x58b8c0
lea edx, [edi - 0x61]
cmp dl, 0x19
jbe 0x58b80e
lea edx, [edi - 0x41]
cmp dl, 0x19
jbe 0x58b80e
lea edx, [edi - 0x30]
cmp dl, 9
jbe 0x58b80e
lea edx, [edi - 0x27]
cmp dl, 2
jbe 0x58b80e
lea edx, [edi - 0x2b]
cmp dl, 4
jbe 0x58b80e
xchg edi, eax
cmp al, 0x20
xchg edi, eax
je 0x58b80e
xchg edi, eax
cmp al, 0x3a
xchg edi, eax
je 0x58b80e
xchg edi, eax
cmp al, 0x3d
xchg edi, eax
je 0x58b80e
xchg edi, eax
cmp al, 0x3f
xchg edi, eax
je 0x58b80e
cmp eax, 0x18
movzx edx, byte [esp + 0x37]
jmp 0x58b8c3
cmp eax, 0x18
jne 0x58b8cc
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
jmp 0x58b8f2
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
call fcn.004b76e0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0048be00
movzx eax, byte [esp + 8]
test al, al
je 0x58b91a
mov ecx, dword [esp + 0x100]
movzx edx, byte [esp + 0x37]
mov eax, 0xc
jmp 0x58b971
lea eax, [0x631620]
mov dword [esp], eax
call fcn.0040b7c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x665049]
mov dword [eax], ecx
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
lea ecx, [0x6c375c]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0xf8
ret
mov eax, 0x13
mov ebx, eax
jmp 0x58b807
call fcn.004612b0
jmp fcn.0058a900