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

Disassembly:
mov ecx, dword [0x95eda0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xa0]
cmp eax, dword [ecx + 8]
jbe 0x617d62
sub esp, 0x120
mov ecx, dword [esp + 0x12c]
cmp ecx, 2
jl 0x616a02
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 0x616a40
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 0x616ff6
mov dword [esp + 0x30], esi
jle 0x616afc
jbe 0x617d5a
mov edx, dword [eax + esi*4]
cmp byte [edx], 0x12
jne 0x616a88
mov ebp, dword [edx + 8]
test ebp, ebp
je 0x616a81
mov ebp, dword [edx + 4]
mov edx, dword [ebp]
mov ebp, dword [esp + 0xf8]
jmp 0x616a88
mov ebp, dword [esp + 0xf8]
cmp byte [edx], 3
je 0x616aa8
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 0x616adb
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 0x617c34
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x58]
jmp 0x617cce
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 0x616b36
mov edi, dword [esp + 0x38]
jmp 0x616fb6
lea edx, [edi + 1]
cmp esi, edx
jne 0x616bca
cmp ecx, edi
jbe 0x617c2d
mov edx, esi
mov esi, dword [esp + 0x38]
inc esi
mov edi, dword [eax + edi*4]
cmp ebx, esi
jae 0x616b9e
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test eax, eax
je 0x616bc1
mov eax, edi
call fcn.004717d0
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 0x616fa2
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0x124]
mov ebp, dword [edx + 0x10]
nop
test ebp, ebp
je 0x616c51
mov ebx, dword [0x95f020]
mov eax, dword [ebp + 0x10]
test ebx, ebx
je 0x616c41
mov dword [esp + 0xf4], ebp
mov dword [esp + 0x118], eax
call fcn.004717d0
mov dword [edi], eax
mov ecx, dword [edx + 0x10]
mov dword [edi + 4], ecx
lea ecx, [0x6deb80]
mov dword [esp], ecx
mov dword [esp + 4], ebp
call fcn.0040ecd0
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.00471a51
jmp 0x616c7a
lea eax, [0x6deb80]
mov dword [esp], eax
call fcn.0040c000
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 0x616cca
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
lea eax, [0x6a7260]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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.00472150
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 [0x95f020]
test eax, eax
jne 0x616d2b
mov ebx, dword [esp + 0x108]
jmp 0x616d3f
call fcn.004717d0
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 0x617bb4
mov esi, dword [esp + 0x130]
cmp esi, edx
jb 0x617c1b
mov edi, dword [esp + 0xd0]
cmp edi, edx
ja 0x617c12
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.006165d0
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 0x616e4e
mov dword [esp + 0xf0], edi
mov ebx, dword [0x95f020]
mov ebp, dword [edi + 0x10]
test ebx, ebx
je 0x616e37
mov dword [esp + 0x114], ebp
mov ecx, edi
call fcn.004717d0
mov dword [edi], ebp
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
lea edx, [0x6deb80]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040ecd0
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.00471a51
mov eax, edx
mov edi, dword [esp + 0xf0]
jmp 0x616e6a
lea eax, [0x6deb80]
mov dword [esp], eax
call fcn.0040c000
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 0x616ebb
mov dword [esp], ebp
mov dword [esp + 4], 2
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x124]
mov edi, dword [esp + 0xf0]
mov esi, dword [0x95f020]
test esi, esi
jne 0x616ed9
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0xe0]
mov esi, dword [esp + 0x118]
jmp 0x616f0a
mov ecx, edi
call fcn.00471810
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 0x616f33
mov eax, dword [esp + 0xf8]
jmp 0x616f75
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test esi, esi
je 0x616f8d
call fcn.004717d0
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 0x616a2c
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 0x61702e
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 0x6174e9
mov dword [esp + 0x30], esi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], edi
jge 0x6171bd
jae 0x617b56
mov edx, dword [eax + esi*4]
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x61706c
xor edx, edx
jmp 0x61708c
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x61708c
mov ebp, dword [edx + 8]
test ebp, ebp
je 0x61708c
mov ebp, dword [edx + 4]
mov ebp, dword [ebp]
cmp byte [ebp], 2
jne 0x61708a
xor edx, edx
jmp 0x61708c
mov edx, ebp
mov ebp, dword [esp + 0x104]
test ebp, ebp
jne 0x6170ad
mov dword [esp + 0xb0], eax
xor eax, eax
mov byte [esp + 0x23], al
mov eax, dword [esp + 0xb0]
jmp 0x6170f4
mov dword [esp + 0x100], edx
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.0061f120
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 0x6171a2
movzx ebx, byte [ebp]
cmp bl, 3
jne 0x617110
cmp dword [ebp + 0x18], 1
je 0x61717b
cmp bl, 4
je 0x61717b
cmp bl, 5
je 0x61717b
cmp bl, 6
je 0x61717b
cmp bl, 0x11
jne 0x6171a2
mov ebx, dword [ebp + 0x28]
cmp dword [ebp + 0x2c], ebx
jne 0x6171a2
mov ebx, dword [ebp + 8]
test ebx, ebx
jbe 0x617b4d
mov ebx, dword [ebp + 4]
mov ebx, dword [ebx]
movzx eax, byte [ebx]
cmp al, 3
jne 0x617153
cmp dword [ebx + 0x18], 1
jne 0x617153
mov eax, dword [esp + 0xf8]
jmp 0x61717b
cmp al, 4
jne 0x617161
mov eax, dword [esp + 0xf8]
jmp 0x61717b
cmp al, 5
jne 0x61716f
mov eax, dword [esp + 0xf8]
jmp 0x61717b
cmp al, 6
jne 0x61719b
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 0x61701a
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 0x6171d4
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0xa8]
cmp edi, esi
jne 0x6171e4
mov edi, dword [esp + 0xd8]
jmp 0x6174c8
lea edx, [edi + 1]
cmp esi, edx
jne 0x617275
cmp edi, ecx
jae 0x617b46
mov edx, esi
mov esi, dword [esp + 0xd8]
inc esi
mov edi, dword [eax + edi*4]
cmp ebx, esi
jae 0x61724c
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test eax, eax
je 0x61726c
mov eax, edi
call fcn.004717d0
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 0x6174b7
mov edx, dword [esp + 0x124]
jmp 0x617ac3
mov edi, dword [esp + 0x3c]
cmp esi, edi
ja 0x617b36
mov ebp, dword [esp + 0xd0]
cmp ebp, esi
ja 0x617b2d
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.006165d0
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 0x617360
mov dword [esp + 0xec], edi
mov ebx, dword [0x95f020]
mov ebp, dword [edi + 0x10]
test ebx, ebx
je 0x617349
mov dword [esp + 0x114], ebp
mov ecx, edi
call fcn.004717d0
mov dword [edi], ebp
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
lea edx, [0x6deb80]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040ecd0
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.00471a51
mov eax, edx
mov edi, dword [esp + 0xec]
jmp 0x61737c
lea eax, [0x6deb80]
mov dword [esp], eax
call fcn.0040c000
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 0x6173cd
mov dword [esp], ebp
mov dword [esp + 4], 2
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
lea eax, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x124]
mov edi, dword [esp + 0xec]
mov esi, dword [0x95f020]
test esi, esi
jne 0x6173eb
mov ecx, edi
mov edx, ebx
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0x104]
jmp 0x61741c
mov ecx, edi
call fcn.00471810
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 0x61744b
mov eax, dword [esp + 0x11c]
jmp 0x61748d
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test esi, esi
je 0x6174a5
call fcn.004717d0
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 0x61701a
mov ecx, dword [esp + 0xd8]
mov eax, ebp
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x61750f
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 0x61780c
jge 0x617570
jae 0x617a67
mov eax, dword [eax + edx*4]
movzx ecx, byte [eax]
cmp cl, 3
jne 0x61753b
cmp dword [eax + 0x18], 1
je 0x61754a
cmp cl, 4
je 0x61754a
cmp cl, 5
je 0x61754a
cmp cl, 6
jne 0x617562
mov edi, dword [esp + 0xd8]
mov ecx, esi
mov eax, dword [esp + 0x38]
mov esi, edx
mov edx, dword [esp + 0x11c]
jmp 0x6174fa
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x54], edx
cmp esi, edx
jne 0x61758b
cmp edx, ecx
mov edx, eax
mov esi, dword [esp + 0x54]
mov edi, ecx
mov eax, dword [esp + 0x38]
jmp 0x617778
lea ebp, [esi + 1]
cmp edx, ebp
jne 0x61764d
cmp esi, ecx
jae 0x617a60
lea ebp, [edi + 1]
mov esi, dword [eax + esi*4]
cmp ebx, ebp
jb 0x6175b1
mov edi, dword [esp + 0xf8]
jmp 0x617603
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test eax, eax
jne 0x617611
cmp edx, ecx
jmp 0x617633
mov dword [esp + 0xcc], ebx
mov eax, edi
call fcn.004717d0
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 0x617778
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], esi
jmp 0x61792c
mov ebp, dword [esp + 0xc4]
cmp ebp, ecx
jae 0x617a4b
mov ebx, dword [eax + ebp*4]
cmp esi, ecx
jae 0x617a44
mov edi, dword [0x95f020]
mov ecx, dword [eax + esi*4]
test edi, edi
je 0x6176a8
call fcn.004717f0
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 0x617989
mov ecx, dword [eax + ebp*4]
mov dword [esp], ecx
call fcn.00616410
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 0x6176f6
mov ebp, dword [esp + 0xf8]
jmp 0x617740
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test esi, esi
jne 0x617759
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xd8]
cmp esi, edi
jmp 0x617774
call fcn.004717d0
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 0x617804
jae 0x617a34
inc eax
mov ecx, dword [edx + esi*4]
cmp ebx, eax
jae 0x6177da
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test edx, edx
je 0x6177f9
call fcn.004717d0
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 0x6174fa
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x61781d
mov eax, dword [esp + 0xf8]
mov ecx, esi
cmp ecx, edi
jge 0x6178e2
lea esi, [ecx + 1]
cmp edi, esi
jle 0x617867
mov dword [esp + 0x110], ebp
mov ebp, dword [eax + ecx*4]
cmp byte [ebp], 2
jne 0x617860
cmp edi, esi
jbe 0x6178fe
mov ebp, dword [eax + ecx*4 + 4]
cmp byte [ebp], 2
jne 0x617857
mov ebp, dword [esp + 0x110]
jmp 0x617814
mov ebp, dword [esp + 0x110]
jmp 0x617867
mov ebp, dword [esp + 0x110]
inc edx
mov ecx, dword [eax + ecx*4]
cmp ebx, edx
jae 0x6178bd
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, [0x6d8c20]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
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 [0x95f020]
test eax, eax
je 0x6178d9
call fcn.004717d0
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 0x617814
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.00471840
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 0x617667
cmp esi, ecx
jae 0x617a59
mov ebx, dword [eax + esi*4]
cmp ebp, ecx
jae 0x617a52
movzx edi, byte [ebx]
mov eax, dword [eax + ebp*4]
movzx ecx, byte [eax]
xchg edi, eax
cmp cl, al
xchg edi, eax
ja 0x617960
jne 0x617964
mov edi, dword [eax + 0x18]
cmp dword [ebx + 0x18], edi
jge 0x617964
mov eax, ebp
jmp 0x617907
mov eax, ebp
mov ebp, esi
jmp 0x617907
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 0x6176c1
mov esi, dword [eax + ebp*4]
cmp ebx, ecx
jae 0x617a3d
mov dword [esp + 0x40], ebx
mov ecx, dword [eax + ebx*4]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.00619cf0
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 0x617a01
mov dword [esp + 0xe8], ebp
lea edx, [0x6ad060]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.0040d7d0
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 [0x95f020]
mov edi, dword [eax + 0x10]
test esi, esi
je 0x61796a
mov ecx, edi
call fcn.004717f0
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 0x61796a
mov eax, esi
mov ecx, edi
call fcn.00471840
mov eax, ebx
call fcn.00471840
mov eax, esi
call fcn.00471840
mov eax, ebp
call fcn.00471840
mov eax, ebp
call fcn.00471840
mov eax, esi
call fcn.00471840
mov eax, esi
call fcn.00471840
mov eax, edx
call fcn.00471840
mov dword [edx + eax*4], ecx
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00614c50
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 0x617281
cmp edi, ecx
jae 0x617b3f
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.00617ff0
mov eax, dword [0x95f020]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x617b10
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xf8]
jmp 0x617a6e
call fcn.004717d0
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 0x617a6e
mov eax, ebp
mov ecx, esi
call fcn.004718a0
mov ecx, esi
mov edx, edi
call fcn.00471880
mov eax, edi
call fcn.00471840
mov eax, edi
call fcn.00471840
xor eax, eax
mov ecx, eax
call fcn.00471840
mov eax, esi
call fcn.00471840
mov dword [edx + eax*4], ecx
mov ebx, dword [esp + 0x124]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00614c50
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 0x616d6b
cmp eax, edi
jbe 0x617c24
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.00617d70
mov eax, dword [0x95f020]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x617bf5
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x128]
jmp 0x617b5d
call fcn.004717d0
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 0x617b5d
mov eax, edi
mov ecx, edx
call fcn.004718a0
mov ecx, edx
mov edx, esi
call fcn.00471880
mov ecx, eax
mov eax, edi
call fcn.00471840
mov eax, edi
call fcn.00471840
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 0x616b29
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 0x617d10
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jge 0x617d14
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 0x617ca1
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov ebp, dword [esp + 0x4c]
jmp 0x617d14
mov ebp, dword [esp + 0x4c]
test ebx, ebx
jle 0x617d41
mov edx, dword [esp + 0x2c]
cmp edx, ebx
jb 0x617d53
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 0x616a2c
mov ebx, dword [esp + 0x3c]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x30]
jmp 0x617c34
mov ecx, ebx
call fcn.00471880
mov eax, esi
call fcn.00471840
nop
call fcn.004703c0
jmp fcn.00616990