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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x16c]
cmp eax, dword [ecx + 8]
jbe 0x586c3e
sub esp, 0x1ec
mov eax, 0
lea edi, [esp + 0x168]
call fcn.0044ca89
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax]
mov dword [esp + 0x12c], ecx
mov dword [esp], ecx
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 0x586ba4
lea eax, [0x7e6020]
cmp eax, ebx
jne 0x586b98
mov ecx, edx
mov dword [esp + 0x128], edx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x88], ebx
jne 0x5853b2
mov ebp, dword [edx + 0x10]
test ebp, ebp
jne 0x585412
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7e6020]
mov dword [esp], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0xc], eax
call fcn.0057e8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp], edx
call fcn.0058bc10
mov eax, dword [esp + 0x1f0]
lea ecx, [eax + 0x10]
mov dword [esp + 0x13c], ecx
mov dword [esp], ecx
call fcn.00595c80
mov eax, dword [esp + 0x12c]
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x58661b
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
test ecx, ecx
jbe 0x586c22
mov ecx, dword [edx]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx]
mov ebp, dword [esp + 0x128]
mov esi, dword [ebp + 0x10]
mov ebp, dword [ebp + 0xc]
test esi, esi
jbe 0x586c22
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.004021c0
movzx eax, byte [esp + 0x18]
test al, al
je 0x5865b4
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
call fcn.005825a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jne 0x58659f
lea ecx, [0x7e6120]
cmp ecx, eax
jne 0x586593
mov ecx, edx
jne 0x58658a
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + 0x38]
test cl, cl
je 0x586523
mov dword [esp + 0x118], edx
mov dword [esp], edx
call fcn.0058c360
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0x118]
movzx ecx, byte [eax + 0xc]
cmp cl, 1
jne 0x586517
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 0x18]
mov ebp, dword [esp + 0x12c]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], ebx
mov ecx, dword [0xb92b90]
test ecx, ecx
jne 0x586508
mov dword [ebp + 0x30], edx
mov dword [esp], ebp
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 0x5864f3
mov dword [esp + 0x88], ebx
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x10]
mov ebp, dword [esp + 0x12c]
movzx esi, word [ebp + 0x20]
mov word [esp], si
mov esi, dword [ecx]
mov edx, ecx
call esi
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
lea ebx, [0x7e65a0]
mov ebp, dword [esp + 0x88]
cmp ebx, ebp
jne 0x5864e9
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xf8], eax
mov dword [esp + 0x8c], ecx
jne 0x5864db
mov dword [esp + 0xf4], edx
mov ebx, dword [edx + 8]
mov ebp, dword [edx + 4]
mov esi, dword [edx]
test esi, esi
je 0x5863df
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
call fcn.00595c80
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x12c]
mov ebx, dword [edx + 0x24]
mov ebp, dword [esp + 0x1f0]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 4]
mov ebp, dword [edx + 0x48]
mov eax, dword [edx + 0x4c]
test eax, eax
jbe 0x586bff
mov eax, dword [ebp]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x58639a
mov eax, dword [esp + 0x12c]
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 0x586385
lea eax, [0x7e60a0]
cmp eax, ebx
jne 0x586379
mov eax, edx
mov dword [esp + 0x124], edx
je 0x58629a
xor ecx, ecx
xor ebp, ebp
lea esi, [0x7e64a0]
cmp esi, ebx
jne 0x58628e
mov edi, eax
jne 0x586219
mov dword [esp + 0x11c], ebp
mov byte [esp + 0x5f], cl
lea eax, [0x7b4b60]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.00438a20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jbe 0x586bf8
mov byte [eax], 0xe
mov ebx, dword [esp + 0x13c]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.00595c80
movzx eax, byte [esp + 0x5f]
test al, al
jne 0x586150
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x12c]
mov edx, dword [ecx + 0x24]
mov ebx, dword [esp + 0x1f0]
mov ebp, dword [ebx + 8]
mov esi, dword [ecx + 0x48]
mov edi, dword [ecx + 0x4c]
test edi, edi
jbe 0x586bf1
mov ecx, dword [esi]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
test ecx, ecx
jne 0x58610b
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], ebx
mov dword [esp + 0xe4], ebp
test esi, esi
je 0x585831
mov dword [esp + 0xec], esi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov edi, dword [esi]
test edi, edi
je 0x58600e
mov edx, dword [esp + 0x13c]
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00595c80
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov ebx, dword [eax + 4]
test edx, edx
je 0x585f12
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x585efd
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x585847
mov edx, dword [ecx + 4]
test edx, edx
jg 0x585a6d
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [esp + 0x12c]
movzx ebp, word [ebx + 0x20]
mov esi, dword [eax + 0xc]
mov edi, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0xc8], ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov word [esp], bp
mov dword [esp + 4], esi
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
call fcn.00595160
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1f0]
mov dword [ebx + 0x48], ecx
mov dword [ebx + 0x4c], eax
mov ebp, dword [0xb92b90]
test ebp, ebp
jne 0x585a5a
mov dword [ebx + 0x44], edx
mov ebp, dword [ebx + 8]
mov esi, dword [esp + 0x12c]
mov edi, dword [esi + 0x24]
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.0057e370
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x58598c
mov ecx, dword [esp + 0x13c]
test byte [ecx], al
mov ecx, dword [esp + 0x1f0]
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x38], 0
mov edx, dword [0xb92b90]
test edx, edx
jne 0x585980
mov dword [ecx + 0x30], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 0
add esp, 0x1ec
ret
lea edi, [ecx + 0x30]
xor eax, eax
call fcn.0044c990
jmp 0x585963
mov dword [esp + 0x108], eax
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x108]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x844fe3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x21
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bd30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xe0], ecx
lea edx, [0x7d00e0]
mov dword [esp], edx
call fcn.00409c40
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x7c]
mov dword [edi + 4], eax
mov eax, dword [0xb92b90]
test eax, eax
jne 0x585a4c
mov eax, dword [esp + 0xe0]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], edi
add esp, 0x1ec
ret
mov eax, dword [esp + 0xe0]
call fcn.0044c990
jmp 0x585a31
lea edi, [ebx + 0x44]
mov ebp, eax
mov eax, edx
call fcn.0044c990
mov eax, ebp
jmp 0x5858f2
lea edi, [esp + 0x168]
xor eax, eax
call fcn.0044ca89
lea edi, [esp + 0x168]
call fcn.0044ca89
mov ecx, dword [esp + 0x12c]
movzx edx, word [ecx + 0x20]
cmp dx, 0x303
setae dl
mov byte [esp + 0x174], dl
mov edx, dword [esp + 0x11c]
mov ebx, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
lea esi, [0x7d2b00]
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00407b60
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
movzx ebx, byte [esp + 0x14]
test bl, bl
je 0x585e6a
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x90], edx
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x124]
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
mov ebp, dword [ebp + 0x1c]
mov eax, dword [ecx + 0x80]
mov dword [esp + 0xc8], eax
mov eax, dword [ecx + 0x7c]
mov dword [esp + 0xc4], eax
mov ecx, dword [ecx + 0x78]
mov eax, dword [esp + 0x12c]
movzx eax, word [eax + 0x20]
mov word [esp + 0x20], ax
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
call fcn.0057b760
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
movzx edx, word [esp + 0x24]
movzx ebx, byte [esp + 0x26]
mov ebp, dword [esp + 0x28]
test ecx, ecx
jne 0x585e25
movzx eax, byte [esp + 0x174]
test al, al
je 0x585b9f
mov word [esp + 0x176], dx
mov byte [esp + 0x5e], bl
mov dword [esp + 0x9c], ebp
lea edi, [esp + 0x1b8]
mov esi, dword [esp + 0x13c]
call fcn.0044cf1e
mov eax, dword [esp + 0x1f0]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov edi, esp
lea esi, [esp + 0x1b8]
call fcn.0044cf1e
mov byte [esp + 0x34], bl
mov dword [esp + 0x38], ebp
call fcn.00596670
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
test ebx, ebx
jne 0x585de0
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x114], edx
mov dword [esp + 0xb8], ebp
lea eax, [0x8b34d0]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
call fcn.004076a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x5e]
cmp dl, 0x12
je 0x585db3
mov edx, dword [esp + 0x12c]
mov ebx, dword [edx + 0x24]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
test ebx, ebx
je 0x585da2
mov edx, dword [esp + 0x90]
mov edx, dword [edx + 0x14]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
call edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], eax
mov dword [esp + 0x178], ebp
test ecx, ecx
jne 0x585d5d
lea eax, [esp + 0x168]
mov dword [esp], eax
call fcn.0058d7f0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00595c80
lea eax, [esp + 0x168]
mov dword [esp], eax
call fcn.0058d7f0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x12c]
mov dword [esp], ebx
mov byte [esp + 4], 0x16
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.005824d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x585847
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0xac], ecx
mov dword [esp + 0x100], edx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov ebp, dword [0xb80194]
mov ebx, dword [0xb80190]
jmp 0x585c6b
lea eax, [0x7da0e0]
mov dword [esp], eax
call fcn.00409c40
mov eax, dword [esp + 4]
mov dword [eax], 0xffffffff
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
lea ecx, [0x8b2770]
jmp 0x585c54
mov dword [esp + 0x100], eax
mov dword [esp + 0xac], ebx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0x100], eax
mov dword [esp + 0xac], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov eax, dword [esp + 0x11c]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ecx
lea eax, [0x850c6d]
mov dword [esp], eax
mov dword [esp + 4], 0x4f
lea eax, [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b4cd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xc8], ecx
lea edx, [0x7b4b60]
mov dword [esp], edx
lea edx, [ecx + 4]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00438a20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x586bce
mov byte [edx], 0x10
cmp ecx, 1
jbe 0x586bc7
mov ebx, dword [esp + 0xc8]
mov ebp, ebx
sar ebx, 0x10
mov byte [edx + 1], bl
cmp ecx, 2
jbe 0x586bc0
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [edx + 2], al
xchg ebp, eax
cmp ecx, 3
jbe 0x586bb9
mov dword [esp + 0xd8], 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 + 0xec]
mov esi, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
cmp ebp, esi
jle 0x58600a
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], ecx
cmp edx, ebx
je 0x585fc7
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 + 0xec]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x585ffc
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
mov ecx, edx
mov ebx, dword [esp + 0x68]
mov edx, eax
jmp 0x585801
mov eax, dword [esp + 0xd8]
call fcn.0044c990
jmp 0x585fef
mov esi, ebp
jmp 0x585fab
mov eax, dword [esi + 0x10]
mov dword [esp + 0xc8], eax
lea ecx, [0x7b4b60]
mov dword [esp], ecx
lea edx, [eax + 4]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00438a20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ecx, ecx
jbe 0x586bea
mov byte [edx], 0x10
cmp ecx, 1
jbe 0x586be3
mov ebx, dword [esp + 0xc8]
mov ebp, ebx
sar ebx, 0x10
mov byte [edx + 1], bl
cmp ecx, 2
jbe 0x586bdc
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [edx + 2], al
xchg ebp, eax
cmp ecx, 3
jbe 0x586bd5
mov dword [esp + 0xd4], 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 + 0xec]
mov esi, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
cmp ebp, esi
jle 0x586107
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], ecx
cmp edx, ebx
je 0x5860c3
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.0044d190
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0xec]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x74]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x5860f9
mov eax, dword [esp + 0xd4]
mov dword [edi], eax
mov eax, edx
mov edi, dword [esp + 0xd4]
jmp 0x5857cf
mov eax, dword [esp + 0xd4]
call fcn.0044c990
jmp 0x5860eb
mov esi, ebp
jmp 0x5860a7
mov dword [esp + 0x110], eax
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
lea eax, [0x7da260]
mov dword [esp], eax
call fcn.00409c40
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x11c]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x586206
mov dword [eax + 0xc], ebp
mov dword [esp + 0x128], eax
mov dword [esp], eax
call fcn.0058bc10
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0x128]
mov dword [esp], eax
call fcn.0058bc10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x12c]
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 0x585739
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
lea edi, [eax + 0xc]
mov edx, eax
mov eax, ebp
call fcn.0044c990
mov eax, edx
jmp 0x586188
mov dword [esp + 0xf0], eax
mov dword [esp + 0x140], edi
mov dword [esp + 0x88], ebx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7e64a0]
mov dword [esp], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0xc], eax
call fcn.0057e8d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov edi, eax
mov eax, 0
jmp 0x5856cb
mov dword [esp], edx
call fcn.0058ce50
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
call fcn.00595c80
mov eax, dword [esp + 0x1f0]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
call fcn.00588200
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x586334
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x12c]
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 0x58631f
mov eax, edx
mov ecx, 1
mov ebp, dword [esp + 0x11c]
mov edx, dword [esp + 0x124]
jmp 0x5856bb
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0x110], ecx
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.00581a50
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov eax, edx
mov edx, 0
jmp 0x5856aa
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0x110], eax
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov eax, dword [edx + 0x10]
mov dword [esp + 0xc8], eax
lea ecx, [0x7b4b60]
mov dword [esp], ecx
lea ebx, [eax + 4]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.00438a20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jbe 0x586c1b
mov byte [eax], 0xc
cmp edx, 1
jbe 0x586c14
mov ebx, dword [esp + 0xc8]
mov ebp, ebx
sar ebx, 0x10
mov byte [eax + 1], bl
cmp edx, 2
jbe 0x586c0d
mov ebx, ebp
sar ebp, 8
xchg ebp, ebx
mov byte [eax + 2], bl
xchg ebp, ebx
cmp edx, 3
jbe 0x586c06
mov dword [esp + 0x6c], ecx
mov byte [eax + 3], bl
lea ebx, [ecx - 4]
neg ebx
sar ebx, 0x1f
and ebx, 4
add ebx, eax
lea ebp, [edx - 4]
mov edi, dword [esp + 0xf4]
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
cmp ebp, ecx
jle 0x5864d7
mov dword [esp + 0xd0], eax
mov dword [esp + 0x60], edx
cmp esi, ebx
je 0x586496
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call fcn.0044d190
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xf4]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x6c]
mov dword [edi + 8], edx
mov ebx, dword [0xb92b90]
test ebx, ebx
jne 0x5864c9
mov eax, dword [esp + 0xd0]
mov dword [edi], eax
mov ebx, edx
mov ebp, ecx
mov esi, eax
jmp 0x5855ef
mov eax, dword [esp + 0xd0]
call fcn.0044c990
jmp 0x5864be
mov ecx, ebp
jmp 0x586477
mov edx, dword [esp + 0xe8]
mov ebx, ebp
jmp 0x58569a
mov edx, 0
jmp 0x5855c4
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
lea edi, [ebp + 0x30]
mov eax, edx
call fcn.0044c990
jmp 0x585550
mov ebp, dword [esp + 0x12c]
jmp 0x585550
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0xa
call fcn.00581a50
lea eax, [0x7d00e0]
mov dword [esp], eax
call fcn.00409c40
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x32
mov eax, dword [0xb92b90]
test eax, eax
jne 0x58657d
lea eax, [0x84c815]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], edi
add esp, 0x1ec
ret
lea eax, [0x84c815]
call fcn.0044c990
jmp 0x586562
mov ebx, eax
mov edx, ecx
jmp 0x585570
mov ecx, edx
mov edx, 0
jmp 0x5854db
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], ebx
add esp, 0x1ec
ret
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
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], 0x33
mov eax, dword [0xb92b90]
test eax, eax
jne 0x58660e
lea eax, [0x84cd70]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], edi
add esp, 0x1ec
ret
lea eax, [0x84cd70]
call fcn.0044c990
jmp 0x5865f3
mov eax, dword [esp + 0x128]
mov ecx, dword [eax + 0x10]
lea edx, [0x8210e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00438a20
mov eax, dword [esp + 0x10]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc0], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x120], edx
mov ebx, dword [esp + 0x128]
mov ebp, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
test ebp, ebp
jg 0x586a22
mov ebp, dword [esp + 0x12c]
mov esi, dword [ebp + 0x24]
movzx ebx, byte [esi + 0x4c]
test bl, bl
jne 0x58680e
mov dword [esp], esi
call fcn.0057de10
lea esi, [esp + 4]
lea edi, [esp + 0x154]
call fcn.0044cf6e
call fcn.0040a6c0
mov eax, dword [esp]
mov dword [esp + 0x138], eax
call fcn.0040a6c0
mov eax, dword [esp]
mov dword [esp + 0x134], eax
lea ecx, [0x7e9b40]
mov dword [esp], ecx
call fcn.00409c40
mov edi, dword [esp + 4]
mov eax, dword [0xb92b90]
test eax, eax
jne 0x5869fa
mov ecx, dword [esp + 0x138]
mov dword [edi], ecx
mov ecx, dword [esp + 0x134]
mov dword [edi + 4], ecx
mov dword [esp + 0xcc], edi
lea edi, [esp + 0x184]
xor eax, eax
call fcn.0044ca83
mov ecx, dword [esp + 0x12c]
mov edx, dword [ecx + 0x24]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x190], edx
lea edi, [esp + 0x194]
lea esi, [esp + 0x154]
call fcn.0044cf6e
mov ecx, dword [esp + 0x12c]
mov edx, dword [ecx + 0x24]
mov ebx, dword [edx + 0x3c]
mov edx, dword [edx + 0x40]
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x18c], edx
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0xbc]
xor ebp, ebp
jmp 0x58676d
inc ebp
xor eax, eax
cmp ebp, ebx
jge 0x5867b0
mov eax, dword [edx + ebp*4]
test ebp, ebp
je 0x58676a
mov dword [esp + 0x94], ebp
mov ecx, dword [esp + 0x18c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00561120
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x94]
jmp 0x58676a
test ebx, ebx
jbe 0x586c30
mov eax, dword [edx]
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0x184]
call fcn.0044cf1e
call fcn.00565d70
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov esi, ebp
mov ebp, dword [esp + 0x12c]
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x5c], eax
mov eax, dword [0xb92b90]
test eax, eax
jne 0x5869eb
mov dword [ebp + 0x54], ecx
test ebx, ebx
jne 0x5869ad
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x28]
test edx, edx
jne 0x58691c
mov ecx, dword [esp + 0xbc]
test ecx, ecx
jbe 0x586c29
mov eax, dword [esp + 0x120]
mov edx, dword [eax]
mov edx, dword [edx + 0x50]
test edx, edx
je 0x58688e
mov ebx, dword [edx + 8]
cmp ebx, 0x2fd00e80
jne 0x58687c
lea esi, [0x806e60]
cmp esi, edx
jne 0x58687c
mov dword [ebp + 0x4c], ecx
mov ecx, dword [esp + 0xc0]
mov dword [ebp + 0x50], ecx
mov ecx, dword [0xb92b90]
test ecx, ecx
jne 0x58686f
mov dword [ebp + 0x48], eax
jmp 0x5854a4
lea edi, [ebp + 0x48]
call fcn.0044c990
jmp 0x5854a4
cmp ebx, 0xcc456746
jne 0x58688e
lea ebx, [0x7c2760]
cmp ebx, edx
je 0x586850
mov dword [esp], ebp
mov byte [esp + 4], 0x2b
call fcn.00581a50
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov eax, dword [esp + 0x120]
mov eax, dword [eax]
mov ecx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
lea eax, [0x8506d2]
mov dword [esp], eax
mov dword [esp + 4], 0x48
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004b4cd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov eax, dword [esp + 0x128]
mov ecx, dword [eax + 0x14]
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov esi, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x58]
mov ebp, dword [ebp + 0x54]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [edx]
call eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x586968
mov ebp, dword [esp + 0x12c]
jmp 0x58681c
mov dword [esp + 0x104], eax
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x2a
call fcn.00581a50
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x140], esi
mov dword [esp], ebp
mov byte [esp + 4], 0x2a
call fcn.00581a50
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
lea edi, [ebp + 0x54]
mov eax, ecx
call fcn.0044c990
jmp 0x586806
mov eax, dword [esp + 0x138]
call fcn.0044c990
lea ecx, [edi + 4]
mov eax, edi
mov edi, ecx
mov edx, eax
mov eax, dword [esp + 0x134]
call fcn.0044c990
mov edi, edx
jmp 0x5866f0
mov dword [esp + 0xc8], ebp
xor edi, edi
jmp 0x586a3b
mov eax, dword [esp + 0x130]
add eax, 0xc
mov esi, eax
mov edi, ecx
mov dword [esp + 0x130], esi
mov dword [esp + 0x98], edi
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0056cb90
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x586aca
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0xbc]
cmp ecx, ebx
jae 0x586c37
mov ebp, dword [esp + 0x120]
lea edi, [ebp + ecx*4]
mov esi, dword [0xb92b90]
test esi, esi
jne 0x586ac3
mov dword [ebp + ecx*4], eax
inc ecx
mov esi, dword [esp + 0xc8]
cmp ecx, esi
jl 0x586a2d
mov eax, ebx
mov ecx, dword [esp + 0xc0]
mov edx, ebp
mov ebx, dword [esp + 0x128]
jmp 0x586671
call fcn.0044c990
jmp 0x586aa0
mov dword [esp + 0x10c], ecx
mov dword [esp + 0xb0], edx
mov eax, dword [esp + 0x12c]
mov dword [esp], eax
mov byte [esp + 4], 0x2a
call fcn.00581a50
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x84afb3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2e
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0043bd30
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], 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 0x586b8a
mov eax, dword [esp + 0xdc]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], edi
add esp, 0x1ec
ret
mov eax, dword [esp + 0xdc]
call fcn.0044c990
jmp 0x586b6f
mov ecx, edx
mov edx, 0
jmp 0x585394
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1f8], eax
add esp, 0x1ec
ret
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.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.00585320