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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x10c]
cmp eax, dword [ecx + 8]
jbe 0x59084e
sub esp, 0x18c
mov eax, 0
lea edi, [esp + 0x158]
call fcn.0044ca83
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
movzx ecx, byte [ecx + 0x4c]
test cl, cl
je 0x58f559
mov ecx, dword [eax + 0x64]
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jle 0x58f559
mov ecx, dword [eax + 8]
mov byte [ecx + 0x38], 1
mov dword [esp + 0xe0], edx
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + 0x68]
test cl, cl
je 0x5907ec
mov ecx, dword [edx + 0x24]
movzx ecx, byte [ecx + 0x5d]
xor ecx, 1
mov edx, dword [eax + 8]
mov byte [edx + 0x48], cl
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
movzx edx, word [edx]
mov word [ecx + 0x28], dx
mov ecx, dword [eax]
movzx ecx, word [ecx + 0x20]
mov edx, dword [eax + 0xc]
mov dword [esp + 4], edx
mov word [esp], cx
call fcn.00595950
lea esi, [esp + 8]
lea edi, [esp + 0xf0]
call fcn.0044cf1e
mov eax, dword [0xb92b90]
mov ecx, dword [esp + 0x190]
lea edi, [ecx + 0x18]
mov dword [esp + 0xec], edi
test eax, eax
jne 0x5907ca
lea esi, [esp + 0xf0]
call fcn.0044cf1e
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x24]
mov edx, dword [edx + 0x44]
test edx, edx
jne 0x5907be
mov edx, dword [esp + 0xec]
test byte [edx], al
mov ebx, dword [esp + 0x190]
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x40], 0
mov ebp, dword [0xb92b90]
test ebp, ebp
jne 0x5907af
mov dword [ebx + 0x38], 0
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.00588a80
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 8]
mov dword [esp], ecx
call fcn.0058a7f0
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 8]
mov dword [esp], ecx
call fcn.0058a7f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x59079a
lea eax, [0x7da260]
mov dword [esp], eax
call fcn.00409c40
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x64]
mov edx, dword [esp + 4]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [edx + 0x10], ebp
mov dword [edx + 0x14], ebx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x59078b
mov dword [edx + 0xc], ecx
mov dword [esp + 0xdc], edx
mov dword [esp], edx
call fcn.0058bc10
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.0058bc10
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.005824d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x590776
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 8]
movzx ecx, byte [ecx + 0x38]
test cl, cl
jne 0x59069d
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0xe0]
movzx ebx, word [ecx + 0x20]
mov word [esp], bx
mov ebx, dword [edx]
call ebx
mov eax, dword [esp + 4]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0xc4], ecx
mov ebx, dword [eax + 0x14]
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp + 0x24]
mov edi, dword [esp + 0x190]
mov eax, dword [edi + 0x64]
mov ebp, dword [edi + 4]
mov edi, dword [edi + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp], ecx
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
test ecx, ecx
jne 0x590658
test eax, eax
je 0x58f85a
mov dword [esp + 0xbc], eax
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
test ebx, ebx
je 0x59055a
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00595c80
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
test edx, edx
je 0x590462
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x59044d
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x24]
mov edx, dword [edx + 0x44]
cmp edx, 1
jge 0x59030f
lea eax, [0x7b4b60]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.00438a20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x59080f
mov byte [edx], 0xe
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00595c80
mov dword [esp + 0xa4], 0
mov byte [esp + 0xa4], 0xe
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x16
lea ecx, [esp + 0xa4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov dword [esp + 0x10], 4
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x5902fa
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.00581ec0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x5902e5
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.005825a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 4]
test ecx, ecx
jne 0x5902d0
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx + 0x44]
cmp ecx, 1
jl 0x5902c7
lea ecx, [0x7e6020]
cmp ecx, ebx
jne 0x5902bb
mov ebp, edx
mov dword [esp + 0xdc], edx
jne 0x590254
mov dword [esp], edx
call fcn.0058bc10
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
test ecx, ecx
jne 0x58fa2d
mov ebx, dword [esp + 0xe0]
mov ebp, dword [ebx + 0x24]
mov ebp, dword [ebp + 0x44]
cmp ebp, 2
jne 0x58fa28
mov dword [esp], ebx
mov byte [esp + 4], 0x2a
call fcn.00581a50
lea eax, [0x7d00e0]
mov dword [esp], eax
call fcn.00409c40
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x28
mov eax, dword [0xb92b90]
test eax, eax
jne 0x58fa1b
lea eax, [0x84880b]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
add esp, 0x18c
ret
lea eax, [0x84880b]
call fcn.0044c990
jmp 0x58fa00
cmp ebp, 4
je 0x58f9c8
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x190]
mov dword [esp], eax
call fcn.005916f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jne 0x59023f
mov dword [esp + 0xb8], edx
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
call fcn.005825a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 4]
test eax, eax
jne 0x59022a
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x7c]
lea ebp, [0x7e62a0]
cmp ebp, ebx
jne 0x59021e
mov esi, edx
mov dword [esp + 0xc0], edx
jne 0x5901b0
mov dword [esp + 0xb8], eax
mov dword [esp + 0x7c], ecx
mov ebx, dword [edx + 8]
mov ebp, dword [edx]
mov esi, dword [edx + 4]
test ebp, ebp
je 0x5900b6
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
call fcn.00595c80
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x24]
mov ebx, dword [esp + 0x190]
mov ebp, dword [ebx + 0x64]
movzx esi, word [ecx + 0x20]
mov word [esp + 0x10], si
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc4]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
test ecx, ecx
jne 0x590071
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 8]
mov edi, dword [esp + 0xe0]
movzx edi, word [edi + 0x20]
mov eax, dword [eax + 0xc]
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0xa0], ebx
mov ebx, dword [ecx + 0x14]
mov dword [esp + 0x9c], ebx
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xe8], ecx
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov word [esp], di
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
call fcn.00595160
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x190]
mov dword [ebx + 0x50], edx
mov dword [ebx + 0x54], ecx
mov ebp, dword [0xb92b90]
test ebp, ebp
jne 0x590064
mov dword [ebx + 0x4c], eax
mov ebp, dword [ebx + 4]
mov esi, dword [esp + 0xe0]
mov edi, dword [esi + 0x24]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
call fcn.0057e370
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x59001f
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + 0x4c]
test edx, edx
jg 0x58fcbe
mov ecx, dword [esp + 0xec]
test byte [ecx], al
mov ecx, dword [esp + 0x190]
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x40], 0
mov edx, dword [0xb92b90]
test edx, edx
jne 0x58fcb2
mov dword [ecx + 0x38], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x198], 0
add esp, 0x18c
ret
lea edi, [ecx + 0x38]
xor eax, eax
call fcn.0044c990
jmp 0x58fc95
mov dword [esp], ecx
call fcn.005825a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 8]
test eax, eax
jne 0x59000a
lea eax, [0x7e61a0]
cmp eax, edx
jne 0x58fffe
mov ecx, ebx
mov dword [esp + 0xd4], ebx
jne 0x58ff90
mov word [esp + 0x5e], 0
movzx eax, word [ebx + 0xe]
mov word [esp + 0x5e], ax
mov eax, dword [esp + 0xe0]
movzx ecx, word [eax + 0x20]
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x7c]
mov dword [esp], ecx
mov edx, dword [esp + 0xb8]
mov dword [esp + 4], edx
lea ebp, [esp + 0x5e]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
mov ebp, dword [0xb78a20]
mov esi, dword [0xb78a28]
mov edi, dword [0xb78a24]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
call fcn.0057b760
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x28]
test ecx, ecx
jne 0x58ff4b
mov byte [esp + 0x5d], dl
mov dword [esp + 0x8c], ebx
lea edi, [esp + 0x124]
mov esi, dword [esp + 0xec]
call fcn.0044cf1e
mov eax, dword [esp + 0x190]
mov ecx, dword [eax + 0x54]
mov ebp, dword [eax + 0x50]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ecx
mov edi, esp
lea esi, [esp + 0x124]
call fcn.0044cf1e
mov byte [esp + 0x34], dl
mov dword [esp + 0x38], ebx
call fcn.00596670
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
test ecx, ecx
je 0x58feeb
test ecx, ecx
je 0x58fec8
mov dword [esp + 0xcc], eax
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x2a
call fcn.00581a50
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x84e590]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x38
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0043bd30
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], ecx
lea edx, [0x7d00e0]
mov dword [esp], edx
call fcn.00409c40
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [0xb92b90]
test eax, eax
jne 0x58feba
mov eax, dword [esp + 0xb4]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], edi
add esp, 0x18c
ret
mov eax, dword [esp + 0xb4]
call fcn.0044c990
jmp 0x58fe9f
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call fcn.0058d7f0
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
jmp 0x58fc66
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x18]
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ecx
movzx ecx, byte [esp + 0x5d]
mov byte [esp], cl
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edx
call fcn.0057bb50
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
jmp 0x58fdf2
mov dword [esp + 0xcc], eax
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x2f
call fcn.00581a50
mov eax, dword [esp + 0x90]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov dword [esp + 0x84], edx
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7e61a0]
mov dword [esp], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
call fcn.0057e8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov ecx, ebx
mov ebx, 0
jmp 0x58fcee
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
add esp, 0x18c
ret
mov dword [esp + 0xc8], eax
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0x94]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
lea edi, [ebx + 0x4c]
call fcn.0044c990
jmp 0x58fc12
mov dword [esp + 0xd0], eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x28
call fcn.00581a50
mov eax, dword [esp + 0x98]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov eax, dword [edx + 0x10]
mov dword [esp + 0xa0], eax
lea ecx, [0x7b4b60]
mov dword [esp], ecx
lea ecx, [eax + 4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00438a20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test eax, eax
jbe 0x590808
mov byte [ecx], 0x10
cmp eax, 1
jbe 0x590801
mov ebx, dword [esp + 0xa0]
mov ebp, ebx
sar ebx, 0x10
mov byte [ecx + 1], bl
cmp eax, 2
jbe 0x5907fa
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [ecx + 2], al
xchg ebp, eax
cmp eax, 3
jbe 0x5907f3
mov dword [esp + 0xb0], ecx
mov byte [ecx + 3], bl
lea ebx, [edx - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, ecx
lea ebp, [eax - 4]
mov edi, dword [esp + 0xc0]
mov esi, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
cmp ebp, esi
jle 0x5901ac
mov dword [esp + 0x64], eax
mov dword [esp + 0x74], edx
cmp ecx, ebx
je 0x59016b
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0044d190
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0xc0]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x74]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x59019e
mov eax, dword [esp + 0xb0]
mov dword [edi], eax
mov ebx, edx
mov esi, ecx
mov ebp, eax
jmp 0x58fad5
mov eax, dword [esp + 0xb0]
call fcn.0044c990
jmp 0x590193
mov esi, ebp
jmp 0x59014f
mov dword [esp + 0xe4], esi
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7e62a0]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
call fcn.0057e8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov esi, edx
mov edx, 0
jmp 0x58faad
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
add esp, 0x18c
ret
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov dword [esp + 0xe4], ebp
mov dword [esp + 0x84], ebx
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7e6020]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
call fcn.0057e8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov ebp, edx
mov edx, 0
jmp 0x58f97e
xor eax, eax
xor ecx, ecx
jmp 0x58fa9d
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
lea edi, [esp + 0x158]
xor eax, eax
call fcn.0044ca83
lea ecx, [0x7a17e0]
mov dword [esp], ecx
call fcn.00409c40
mov ecx, dword [esp + 4]
movzx edx, word [0x8b048c]
mov word [ecx], dx
mov dword [esp + 0x16c], 2
mov dword [esp + 0x170], 2
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0xe0]
movzx edx, word [ecx + 0x20]
cmp dx, 0x303
jb 0x590397
mov byte [esp + 0x164], 1
mov eax, dword [0xb78a28]
mov edx, dword [0xb78a24]
mov ebx, dword [0xb78a20]
mov dword [esp + 0x178], edx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x174], ebx
mov eax, dword [ecx + 0x24]
mov eax, dword [eax + 0x48]
test eax, eax
jne 0x59041f
lea eax, [esp + 0x158]
mov dword [esp], eax
call fcn.0058ce50
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
lea eax, [esp + 0x158]
mov dword [esp], eax
call fcn.0058ce50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x58f870
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov dword [esp], eax
call fcn.00561520
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], edx
mov dword [esp + 0x180], ecx
jmp 0x5903a1
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xa0], ecx
lea edx, [0x7b4b60]
mov dword [esp], edx
lea ebx, [ecx + 4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00438a20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x59082b
mov byte [edx], 0xc
cmp ecx, 1
jbe 0x590824
mov ebx, dword [esp + 0xa0]
mov ebp, ebx
sar ebx, 0x10
mov byte [edx + 1], bl
cmp ecx, 2
jbe 0x59081d
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [edx + 2], al
xchg ebp, eax
cmp ecx, 3
jbe 0x590816
mov dword [esp + 0xa8], edx
mov byte [edx + 3], bl
lea ebx, [eax - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, edx
lea ebp, [ecx - 4]
mov edi, dword [esp + 0xbc]
mov esi, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
cmp ebp, esi
jle 0x590556
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
cmp edx, ebx
je 0x590517
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.0044d190
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0xbc]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x6c]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x590548
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
mov ebx, edx
mov edx, eax
jmp 0x58f82a
mov eax, dword [esp + 0xa8]
call fcn.0044c990
jmp 0x59053f
mov esi, ebp
jmp 0x5904fb
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xa0], ecx
lea edx, [0x7b4b60]
mov dword [esp], edx
lea ebx, [ecx + 4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00438a20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test ecx, ecx
jbe 0x590847
mov byte [eax], 0xc
cmp ecx, 1
jbe 0x590840
mov ebx, dword [esp + 0xa0]
mov ebp, ebx
sar ebx, 0x10
mov byte [eax + 1], bl
cmp ecx, 2
jbe 0x590839
mov ebx, ebp
sar ebp, 8
xchg ebp, ebx
mov byte [eax + 2], bl
xchg ebp, ebx
cmp ecx, 3
jbe 0x590832
mov dword [esp + 0x70], edx
mov byte [eax + 3], bl
lea ebx, [edx - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, eax
lea ebp, [ecx - 4]
mov edi, dword [esp + 0xbc]
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
cmp ebp, edx
jle 0x590654
mov dword [esp + 0xac], eax
mov dword [esp + 0x60], ecx
cmp esi, ebx
je 0x590611
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
call fcn.0044d190
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xbc]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x590646
mov eax, dword [esp + 0xac]
mov dword [edi], eax
mov ebx, eax
mov ecx, edx
mov edx, dword [esp + 0x60]
jmp 0x58f7f8
mov eax, dword [esp + 0xac]
call fcn.0044c990
jmp 0x590639
mov edx, ebp
jmp 0x5905f2
mov dword [esp + 0x98], ecx
mov dword [esp + 0xd0], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov byte [esp + 4], 0x28
call fcn.00581a50
mov eax, dword [esp + 0x98]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
lea eax, [0x7e9a40]
mov dword [esp], eax
call fcn.00409c40
mov eax, dword [esp + 4]
mov byte [eax + 0xc], 1
mov ecx, dword [esp + 0x190]
mov edx, dword [ecx + 0x64]
mov ebx, dword [edx + 0x14]
mov ebp, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x18], edx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x590763
mov dword [eax + 0x10], ebx
mov dword [esp + 0xd8], eax
mov dword [esp], eax
call fcn.0058c360
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.0058c360
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xe0]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.005824d0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x59074e
mov eax, dword [esp + 0x190]
jmp 0x58f768
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
add esp, 0x18c
ret
lea edi, [eax + 0x10]
mov edx, eax
mov eax, ebx
call fcn.0044c990
mov eax, edx
jmp 0x5906dd
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], ecx
add esp, 0x18c
ret
lea edi, [edx + 0xc]
mov eax, ecx
call fcn.0044c990
jmp 0x58f6e9
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], eax
add esp, 0x18c
ret
lea edi, [ebx + 0x38]
xor eax, eax
call fcn.0044c990
jmp 0x58f625
mov ebx, dword [esp + 0x190]
jmp 0x58f625
lea eax, [0x818160]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xf0]
mov dword [esp + 8], eax
call fcn.0040f640
jmp 0x58f5dd
xor ecx, ecx
jmp 0x58f579
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.004264e0
ud2
call fcn.0044b230
jmp fcn.0058f500