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

Disassembly:
mov ecx, dword [0x78bd58]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xa0]
cmp eax, dword [ecx + 8]
jbe 0x583132
sub esp, 0x120
mov ecx, dword [esp + 0x12c]
cmp ecx, 2
jl 0x581dd2
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0x128]
mov eax, ebp
mov edx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov word [esp + 0x24], ax
xor edx, edx
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + 0x2c], edx
xor edx, edx
mov dword [esp + 0xe4], edx
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov eax, ebp
mov edx, dword [esp + 0x130]
mov ebx, edx
jmp 0x581e10
mov eax, dword [esp + 0x128]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x13c], eax
add esp, 0x120
ret
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x38], edi
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xf8], ebp
cmp ecx, esi
jl 0x5823c6
mov dword [esp + 0x30], esi
jle 0x581ecc
jbe 0x58312a
mov edx, dword [eax + esi*4]
cmp byte [edx], 0x12
jne 0x581e58
mov ebp, dword [edx + 8]
test ebp, ebp
je 0x581e51
mov ebp, dword [edx + 4]
mov edx, dword [ebp]
mov ebp, dword [esp + 0xf8]
jmp 0x581e58
mov ebp, dword [esp + 0xf8]
cmp byte [edx], 3
je 0x581e78
xor edx, edx
xor edx, edx
mov dword [esp + 0x4c], edx
xor edx, edx
mov dword [esp + 0xfc], edx
xor edx, edx
mov dword [esp + 0x50], edx
xor edx, edx
jmp 0x581eab
movzx ebp, word [edx + 2]
mov ebx, dword [edx + 0x14]
mov eax, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
and ebp, 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x128]
mov ebx, dword [esp + 0x3c]
mov edx, ebp
mov ebp, dword [esp + 0xf8]
movzx ebp, word [esp + 0x24]
cmp bp, dx
jne 0x583004
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
jmp 0x58309e
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0xd8], eax
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x10c], eax
xor eax, eax
mov word [esp + 0x26], ax
mov eax, dword [esp + 0x98]
cmp edi, esi
jne 0x581f06
mov edi, dword [esp + 0x38]
jmp 0x582386
lea edx, [edi + 1]
cmp esi, edx
jne 0x581f9a
cmp ecx, edi
jbe 0x582ffd
mov edx, esi
mov esi, dword [esp + 0x38]
inc esi
mov edi, dword [eax + edi*4]
cmp ebx, esi
jae 0x581f6e
mov dword [esp + 0x118], edi
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x118]
mov eax, dword [0x78be40]
test eax, eax
je 0x581f91
mov eax, edi
call fcn.0046fef0
mov dword [edi], eax
mov ecx, dword [ebp + esi*4 - 4]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x12c]
mov edi, eax
mov dword [ebp + esi*4 - 4], edi
jmp 0x582372
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0x124]
mov ebp, dword [edx + 0x10]
nop
test ebp, ebp
je 0x582021
mov ebx, dword [0x78be40]
mov eax, dword [ebp + 0x10]
test ebx, ebx
je 0x582011
mov dword [esp + 0xf4], ebp
mov dword [esp + 0x118], eax
call fcn.0046fef0
mov dword [edi], eax
mov ecx, dword [edx + 0x10]
mov dword [edi + 4], ecx
lea ecx, [0x5cd780]
mov dword [esp], ecx
mov dword [esp + 4], ebp
call fcn.004162d0
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x124]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xd0]
mov dword [edx + 0x10], eax
xor eax, eax
mov ebx, edi
mov edi, ebp
call fcn.00470111
jmp 0x58204a
lea eax, [0x5cd780]
mov dword [esp], eax
call fcn.00410f90
mov ebp, dword [esp + 4]
mov eax, dword [esp + 0x124]
inc dword [eax + 0x2c]
mov edx, eax
mov ebx, dword [esp + 0xd0]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x118], ebp
mov byte [ebp], 3
movzx eax, word [esp + 0x24]
mov word [ebp + 2], ax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov edi, dword [esp + 0x28]
cmp edi, eax
jbe 0x58209a
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
lea eax, [0x5b1f80]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, eax
mov eax, edx
mov dword [esp + 0x108], ecx
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], eax
mov dword [esp], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x28]
shl edx, 2
mov dword [esp + 8], edx
call fcn.00470810
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x118]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0xb8]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x78be40]
test eax, eax
jne 0x5820fb
mov ebx, dword [esp + 0x108]
jmp 0x58210f
call fcn.0046fef0
mov ebx, dword [esp + 0x108]
mov dword [edi], ebx
mov ebp, dword [ecx + 0x14]
mov dword [edi + 4], ebp
mov dword [ecx + 0x14], ebx
mov ebx, dword [esp + 0x128]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x12c]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0xd0]
jmp 0x582f84
mov esi, dword [esp + 0x130]
cmp esi, edx
jb 0x582feb
mov edi, dword [esp + 0xd0]
cmp edi, edx
ja 0x582fe2
mov dword [esp], ebp
sub esi, edi
mov dword [esp + 0xbc], esi
sub edx, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl edi, 2
sar esi, 0x1f
and edi, esi
lea esi, [ebx + edi]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], 0x13
call fcn.005819a0
mov eax, dword [esp + 0x124]
mov edi, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xe0], ecx
nop
test edi, edi
je 0x58221e
mov dword [esp + 0xf0], edi
mov ebx, dword [0x78be40]
mov ebp, dword [edi + 0x10]
test ebx, ebx
je 0x582207
mov dword [esp + 0x114], ebp
mov ecx, edi
call fcn.0046fef0
mov dword [edi], ebp
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
lea edx, [0x5cd780]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.004162d0
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xe0]
mov ebp, dword [esp + 0x114]
mov edi, dword [esp + 0xf0]
mov dword [eax + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.00470111
mov eax, edx
mov edi, dword [esp + 0xf0]
jmp 0x58223a
lea eax, [0x5cd780]
mov dword [esp], eax
call fcn.00410f90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x124]
inc dword [eax + 0x2c]
mov dword [esp + 0xf0], edi
mov byte [edi], 0x12
mov ebx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
cmp ebx, 2
jae 0x58228b
mov dword [esp], ebp
mov dword [esp + 4], 2
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x124]
mov edi, dword [esp + 0xf0]
mov esi, dword [0x78be40]
test esi, esi
jne 0x5822a9
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0xe0]
mov esi, dword [esp + 0x118]
jmp 0x5822da
mov ecx, edi
call fcn.0046ff30
mov esi, dword [esp + 0x118]
mov dword [edi], esi
mov edx, dword [ebp]
mov dword [edi + 4], edx
mov edx, ebx
mov ebx, dword [esp + 0xe0]
mov dword [edi + 8], ebx
mov eax, dword [ebp + 4]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebp
mov eax, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov dword [ebp], esi
mov dword [ebp + 4], ebx
mov dword [ecx + 8], 2
mov dword [ecx + 0xc], edx
mov dword [ecx + 4], ebp
mov ebx, dword [esp + 0x38]
inc ebx
mov ebp, dword [esp + 0x3c]
cmp ebp, ebx
jb 0x582303
mov eax, dword [esp + 0xf8]
jmp 0x582345
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xf0]
mov edx, eax
mov eax, ebp
mov ebp, edx
mov esi, dword [0x78be40]
test esi, esi
je 0x58235d
call fcn.0046fef0
mov dword [edi], ecx
mov esi, dword [eax + ebx*4 - 4]
mov dword [edi + 4], esi
mov dword [eax + ebx*4 - 4], ecx
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x30]
mov esi, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x130]
mov edi, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x70], eax
movzx eax, word [esp + 0x26]
mov word [esp + 0x24], ax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
jmp 0x581dfc
mov ecx, dword [esp + 0x38]
mov eax, ebp
mov edx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x104], eax
xor edx, edx
mov dword [esp + 0xd8], edx
mov eax, ebp
mov edx, ebx
jmp 0x5823fe
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0xd8], edi
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x11c], ebp
cmp esi, ecx
jg 0x5828b9
mov dword [esp + 0x30], esi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], edi
jge 0x58258d
jae 0x582f26
mov edx, dword [eax + esi*4]
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x58243c
xor edx, edx
jmp 0x58245c
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x58245c
mov ebp, dword [edx + 8]
test ebp, ebp
je 0x58245c
mov ebp, dword [edx + 4]
mov ebp, dword [ebp]
cmp byte [ebp], 2
jne 0x58245a
xor edx, edx
jmp 0x58245c
mov edx, ebp
mov ebp, dword [esp + 0x104]
test ebp, ebp
jne 0x58247d
mov dword [esp + 0xb0], eax
xor eax, eax
mov byte [esp + 0x23], al
mov eax, dword [esp + 0xb0]
jmp 0x5824c4
mov dword [esp + 0x100], edx
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.0058a940
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x100]
mov ebx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x104]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xd0]
mov byte [esp + 0x23], al
mov eax, dword [esp + 0xf8]
movzx ebx, byte [esp + 0x23]
test bl, bl
je 0x582572
movzx ebx, byte [ebp]
cmp bl, 3
jne 0x5824e0
cmp dword [ebp + 0x18], 1
je 0x58254b
cmp bl, 4
je 0x58254b
cmp bl, 5
je 0x58254b
cmp bl, 6
je 0x58254b
cmp bl, 0x11
jne 0x582572
mov ebx, dword [ebp + 0x28]
cmp dword [ebp + 0x2c], ebx
jne 0x582572
mov ebx, dword [ebp + 8]
test ebx, ebx
jbe 0x582f1d
mov ebx, dword [ebp + 4]
mov ebx, dword [ebx]
movzx eax, byte [ebx]
cmp al, 3
jne 0x582523
cmp dword [ebx + 0x18], 1
jne 0x582523
mov eax, dword [esp + 0xf8]
jmp 0x58254b
cmp al, 4
jne 0x582531
mov eax, dword [esp + 0xf8]
jmp 0x58254b
cmp al, 5
jne 0x58253f
mov eax, dword [esp + 0xf8]
jmp 0x58254b
cmp al, 6
jne 0x58256b
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x3c]
mov esi, edi
mov ebx, dword [esp + 0xd4]
mov edi, dword [esp + 0xd8]
mov ebp, dword [esp + 0x11c]
jmp 0x5823ea
mov eax, dword [esp + 0xf8]
mov ebx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0x3c]
jmp 0x5825a4
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xa8]
cmp edi, esi
jne 0x5825b4
mov edi, dword [esp + 0xd8]
jmp 0x582898
lea edx, [edi + 1]
cmp esi, edx
jne 0x582645
cmp edi, ecx
jae 0x582f16
mov edx, esi
mov esi, dword [esp + 0xd8]
inc esi
mov edi, dword [eax + edi*4]
cmp ebx, esi
jae 0x58261c
mov dword [esp + 0x114], edi
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x114]
mov eax, dword [0x78be40]
test eax, eax
je 0x58263c
mov eax, edi
call fcn.0046fef0
mov dword [edi], eax
mov ecx, dword [ebp + esi*4 - 4]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x38]
mov edi, eax
mov dword [ebp + esi*4 - 4], edi
jmp 0x582887
mov edx, dword [esp + 0x124]
jmp 0x582e93
mov edi, dword [esp + 0x3c]
cmp esi, edi
ja 0x582f06
mov ebp, dword [esp + 0xd0]
cmp ebp, esi
ja 0x582efd
mov dword [esp], edx
sub edi, ebp
mov dword [esp + 0xd0], edi
sub esi, ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
shl ebp, 2
sar edi, 0x1f
and ebp, edi
add ebp, eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0xc], ebp
mov byte [esp + 0x10], 0x13
call fcn.005819a0
mov eax, dword [esp + 0x124]
mov edi, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xdc], ecx
nop
test edi, edi
je 0x582730
mov dword [esp + 0xec], edi
mov ebx, dword [0x78be40]
mov ebp, dword [edi + 0x10]
test ebx, ebx
je 0x582719
mov dword [esp + 0x114], ebp
mov ecx, edi
call fcn.0046fef0
mov dword [edi], ebp
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
lea edx, [0x5cd780]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.004162d0
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0xdc]
mov ebp, dword [esp + 0x114]
mov edi, dword [esp + 0xec]
mov dword [eax + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.00470111
mov eax, edx
mov edi, dword [esp + 0xec]
jmp 0x58274c
lea eax, [0x5cd780]
mov dword [esp], eax
call fcn.00410f90
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x124]
inc dword [eax + 0x2c]
mov dword [esp + 0xec], edi
mov byte [edi], 0x12
mov ebx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
cmp ebx, 2
jae 0x58279d
mov dword [esp], ebp
mov dword [esp + 4], 2
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x124]
mov edi, dword [esp + 0xec]
mov esi, dword [0x78be40]
test esi, esi
jne 0x5827bb
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0x104]
jmp 0x5827ec
mov ecx, edi
call fcn.0046ff30
mov esi, dword [esp + 0x104]
mov dword [edi], esi
mov edx, dword [ebp]
mov dword [edi + 4], edx
mov edx, ebx
mov ebx, dword [esp + 0xdc]
mov dword [edi + 8], ebx
mov eax, dword [ebp + 4]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ebp
mov eax, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov dword [ebp], esi
mov dword [ebp + 4], ebx
mov dword [ecx + 8], 2
mov dword [ecx + 0xc], edx
mov dword [ecx + 4], ebp
mov ebx, dword [esp + 0xd8]
inc ebx
mov ebp, dword [esp + 0xd4]
cmp ebp, ebx
jb 0x58281b
mov eax, dword [esp + 0x11c]
jmp 0x58285d
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xec]
mov edx, eax
mov eax, ebp
mov ebp, edx
mov esi, dword [0x78be40]
test esi, esi
je 0x582875
call fcn.0046fef0
mov dword [edi], ecx
mov esi, dword [eax + ebx*4 - 4]
mov dword [edi + 4], esi
mov dword [eax + ebx*4 - 4], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov esi, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x3c]
mov edi, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xa0]
jmp 0x5823ea
mov ecx, dword [esp + 0xd8]
mov eax, ebp
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x5828df
inc esi
mov edx, esi
mov esi, ecx
mov edi, eax
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xf8], ebp
mov dword [esp + 0x38], edi
cmp edx, ecx
jg 0x582bdc
jge 0x582940
jae 0x582e37
mov eax, dword [eax + edx*4]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x58290b
cmp dword [eax + 0x18], 1
je 0x58291a
cmp cl, 4
je 0x58291a
cmp cl, 5
je 0x58291a
cmp cl, 6
jne 0x582932
mov edi, dword [esp + 0xd8]
mov ecx, esi
mov eax, dword [esp + 0x38]
mov esi, edx
mov edx, dword [esp + 0x11c]
jmp 0x5828ca
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x54], edx
cmp esi, edx
jne 0x58295b
cmp edx, ecx
mov edx, eax
mov esi, dword [esp + 0x54]
mov edi, ecx
mov eax, dword [esp + 0x38]
jmp 0x582b48
lea ebp, [esi + 1]
cmp edx, ebp
jne 0x582a1d
cmp esi, ecx
jae 0x582e30
lea ebp, [edi + 1]
mov esi, dword [eax + esi*4]
cmp ebx, ebp
jb 0x582981
mov edi, dword [esp + 0xf8]
jmp 0x5829d3
mov dword [esp + 0x118], esi
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x118]
mov edi, ebp
mov ebp, eax
mov eax, dword [0x78be40]
test eax, eax
jne 0x5829e1
cmp edx, ecx
jmp 0x582a03
mov dword [esp + 0xcc], ebx
mov eax, edi
call fcn.0046fef0
mov dword [edi], esi
mov ebx, dword [eax + ebp*4 - 4]
mov dword [edi + 4], ebx
cmp edx, ecx
mov ebx, dword [esp + 0xcc]
mov edi, eax
mov dword [edi + ebp*4 - 4], esi
mov edx, dword [esp + 0x11c]
mov esi, dword [esp + 0x54]
mov eax, ebp
mov ebp, edi
mov edi, ecx
jmp 0x582b48
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], esi
jmp 0x582cfc
mov ebp, dword [esp + 0xc4]
cmp ebp, ecx
jae 0x582e1b
mov ebx, dword [eax + ebp*4]
cmp esi, ecx
jae 0x582e14
mov edi, dword [0x78be40]
mov ecx, dword [eax + esi*4]
test edi, edi
je 0x582a78
call fcn.0046ff10
mov dword [edi], ecx
mov edx, dword [eax + ebp*4]
mov dword [edi + 4], edx
mov dword [edi + 8], ebx
mov edx, dword [eax + esi*4]
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ebp*4], ecx
mov dword [eax + esi*4], ebx
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xd4]
jmp 0x582d59
mov ecx, dword [eax + ebp*4]
mov dword [esp], ecx
call fcn.005817e0
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x11c]
mov ecx, dword [edx + ecx*4]
mov ebx, dword [esp + 0xc8]
cmp ebx, eax
jb 0x582ac6
mov ebp, dword [esp + 0xf8]
jmp 0x582b10
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov esi, dword [0x78be40]
test esi, esi
jne 0x582b29
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xd8]
cmp esi, edi
jmp 0x582b44
call fcn.0046fef0
mov dword [edi], ecx
mov esi, dword [ebp + eax*4 - 4]
mov dword [edi + 4], esi
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xd8]
cmp esi, edi
mov dword [ebp + eax*4 - 4], ecx
jge 0x582bd4
jae 0x582e04
inc eax
mov ecx, dword [edx + esi*4]
cmp ebx, eax
jae 0x582baa
mov dword [esp + 0x118], ecx
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xd8]
mov edx, dword [0x78be40]
test edx, edx
je 0x582bc9
call fcn.0046fef0
mov dword [edi], ecx
mov edx, dword [ebp + eax*4 - 4]
mov dword [edi + 4], edx
mov edi, dword [esp + 0xd8]
mov dword [ebp + eax*4 - 4], ecx
mov edx, dword [esp + 0x11c]
lea ecx, [esi + 1]
jmp 0x5828ca
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x582bed
mov eax, dword [esp + 0xf8]
mov ecx, esi
cmp ecx, edi
jge 0x582cb2
lea esi, [ecx + 1]
cmp edi, esi
jle 0x582c37
mov dword [esp + 0x110], ebp
mov ebp, dword [eax + ecx*4]
cmp byte [ebp], 2
jne 0x582c30
cmp edi, esi
jbe 0x582cce
mov ebp, dword [eax + ecx*4 + 4]
cmp byte [ebp], 2
jne 0x582c27
mov ebp, dword [esp + 0x110]
jmp 0x582be4
mov ebp, dword [esp + 0x110]
jmp 0x582c37
mov ebp, dword [esp + 0x110]
inc edx
mov ecx, dword [eax + ecx*4]
cmp ebx, edx
jae 0x582c8d
mov dword [esp + 0xc0], esi
mov dword [esp + 0x118], ecx
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5cae40]
mov dword [esp + 0x10], eax
call fcn.004544e0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x118]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x38]
mov eax, dword [0x78be40]
test eax, eax
je 0x582ca9
call fcn.0046fef0
mov dword [edi], ecx
mov eax, dword [ebp + edx*4 - 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x38]
mov dword [ebp + edx*4 - 4], ecx
jmp 0x582be4
mov dword [esp + 0x134], ebp
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], ebx
add esp, 0x120
ret
mov eax, esi
mov ecx, edi
call fcn.0046ff60
inc eax
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x11c]
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0x38]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0x11c]
cmp ebp, edx
jge 0x582a37
cmp esi, ecx
jae 0x582e29
mov ebx, dword [eax + esi*4]
cmp ebp, ecx
jae 0x582e22
movzx edi, byte [ebx]
mov eax, dword [eax + ebp*4]
movzx ecx, byte [eax]
xchg edi, eax
cmp cl, al
xchg edi, eax
ja 0x582d30
jne 0x582d34
mov edi, dword [eax + 0x18]
cmp dword [ebx + 0x18], edi
jge 0x582d34
mov eax, ebp
jmp 0x582cd7
mov eax, ebp
mov ebp, esi
jmp 0x582cd7
mov dword [ebp + 0x10], edi
mov dword [eax + 0x10], ebp
lea esi, [edx + 1]
mov ecx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xc4]
mov edx, dword [esp + 0x54]
mov eax, ebx
mov ebx, esi
cmp ebx, edx
jge 0x582a91
mov esi, dword [eax + ebp*4]
cmp ebx, ecx
jae 0x582e0d
mov dword [esp + 0x40], ebx
mov ecx, dword [eax + ebx*4]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00585180
mov eax, dword [esp + 0x124]
mov ecx, dword [eax + 0x3c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [ebx + edx*4]
test ecx, ecx
je 0x582dd1
mov dword [esp + 0xe8], ebp
lea edx, [0x5b5460]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.00414360
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0xe8]
test byte [ebp], al
mov esi, dword [0x78be40]
mov edi, dword [eax + 0x10]
test esi, esi
je 0x582d3a
mov ecx, edi
call fcn.0046ff10
mov dword [edi], ecx
mov esi, dword [ebp + 0x10]
mov dword [edi + 4], esi
mov dword [edi + 8], ebp
mov esi, dword [eax + 0x10]
mov dword [edi + 0xc], esi
mov edi, ecx
jmp 0x582d3a
mov eax, esi
mov ecx, edi
call fcn.0046ff60
mov eax, ebx
call fcn.0046ff60
mov eax, esi
call fcn.0046ff60
mov eax, ebp
call fcn.0046ff60
mov eax, ebp
call fcn.0046ff60
mov eax, esi
call fcn.0046ff60
mov eax, esi
call fcn.0046ff60
mov eax, edx
call fcn.0046ff60
mov dword [edx + eax*4], ecx
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00580020
mov eax, dword [esp + 0x44]
lea edi, [eax + 1]
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
mov ecx, ebx
mov edx, dword [esp + 0x124]
mov ebx, dword [esp + 0xd4]
mov ebp, dword [esp + 0x11c]
mov esi, dword [esp + 0x30]
cmp edi, esi
jge 0x582651
cmp edi, ecx
jae 0x582f0f
mov dword [esp + 0x44], edi
mov ecx, dword [eax + edi*4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xd0]
cmp edi, ecx
setne bl
mov byte [esp + 8], bl
call fcn.005833c0
mov eax, dword [0x78be40]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x582ee0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xf8]
jmp 0x582e3e
call fcn.0046fef0
mov dword [edi], ecx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xf8]
mov ebx, dword [edx + eax*4]
mov dword [edi + 4], ebx
jmp 0x582e3e
mov eax, ebp
mov ecx, esi
call fcn.0046ffc0
mov ecx, esi
mov edx, edi
call fcn.0046ffa0
mov eax, edi
call fcn.0046ff60
mov eax, edi
call fcn.0046ff60
xor eax, eax
mov ecx, eax
call fcn.0046ff60
mov eax, esi
call fcn.0046ff60
mov dword [edx + eax*4], ecx
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00580020
mov eax, dword [esp + 0x48]
lea edi, [eax + 1]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [esp + 0x118]
mov edx, ebp
mov ebx, dword [esp + 0x128]
mov ebp, dword [esp + 0x124]
mov esi, dword [esp + 0x28]
cmp edi, edx
jge 0x58213b
cmp eax, edi
jbe 0x582ff4
mov dword [esp + 0x48], edi
mov eax, dword [ebx + edi*4]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00583140
mov eax, dword [0x78be40]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x582fc5
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x128]
jmp 0x582f2d
call fcn.0046fef0
mov dword [edi], ecx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x128]
mov ebx, dword [edx + eax*4]
mov dword [edi + 4], ebx
jmp 0x582f2d
mov eax, edi
mov ecx, edx
call fcn.0046ffc0
mov ecx, edx
mov edx, esi
call fcn.0046ffa0
mov ecx, eax
mov eax, edi
call fcn.0046ff60
mov eax, edi
call fcn.0046ff60
mov ebp, dword [esp + 0xf8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x2c], ecx
mov word [esp + 0x80], dx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x10c], edx
mov dword [esp + 0x78], ebx
movzx ebx, word [esp + 0x80]
mov word [esp + 0x26], bx
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x78]
jmp 0x581ef9
lea eax, [ebx + 1]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x3c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x128]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x34]
cmp esi, ebx
jle 0x5830e0
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jge 0x5830e4
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + ebx*4]
mov ebp, dword [esp + 0xfc]
lea ecx, [ebp + ebx*4]
cmp dword [ecx], eax
je 0x583071
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x4c]
jmp 0x5830e4
mov ebp, dword [esp + 0x4c]
test ebx, ebx
jle 0x583111
mov edx, dword [esp + 0x2c]
cmp edx, ebx
jb 0x583123
mov edx, dword [esp + 0x130]
mov esi, edi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0xf8]
jmp 0x581dfc
mov ebx, dword [esp + 0x3c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x30]
jmp 0x583004
mov ecx, ebx
call fcn.0046ffa0
mov eax, esi
call fcn.0046ff60
nop
call fcn.0046eae0
jmp fcn.00581d60