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

Disassembly:
mov ecx, dword [0x95eda0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x6141bf
sub esp, 0xb8
mov ebx, dword [esp + 0xc0]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x6131c8
xchg ebp, eax
cmp al, 4
xchg ebp, eax
ja 0x612cef
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jbe 0x612b8c
xchg ebp, eax
cmp al, 3
xchg ebp, eax
jne 0x612b2b
mov ebp, dword [ebx + 0x18]
test ebp, ebp
je 0x612a0e
mov dword [esp + 0x90], ebp
mov esi, dword [esp + 0xbc]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x54], eax
xor eax, eax
jmp 0x614045
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 6
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x612ab2
mov dword [esp + 0x9c], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x612aa3
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x90]
mov dword [ecx + 4], ebp
mov ecx, dword [0x95f020]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x612af9
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
movzx ebx, word [ebx + 2]
mov ebp, dword [esp + 0xbc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], bx
call fcn.00614840
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], bl
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x612cbf
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x613d59
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 6
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x612c46
mov dword [esp + 0x9c], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x612c37
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x90]
mov dword [ecx + 4], ebp
mov ecx, dword [0x95f020]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x612c8d
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 6
xchg ebp, eax
ja 0x612dd1
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x612d69
mov eax, dword [0x933ca0]
mov ecx, dword [0x933ca4]
mov edx, dword [0x933ca8]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.00614840
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], bl
add esp, 0xb8
ret
mov eax, dword [0x933cb0]
mov ecx, dword [0x933cb4]
mov edx, dword [0x933cb8]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov word [esp + 0x10], 0
call fcn.00614840
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], bl
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 7
xchg ebp, eax
jne 0x612f27
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x612e85
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x612e71
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x612ed2
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x614008
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 1
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x61307d
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x612fdb
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x612fc7
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x613028
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x613fff
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 2
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x613126
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x613112
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x613173
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x613ff6
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 4
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
ja 0x6138e0
xchg ebp, eax
cmp al, 0xb
xchg ebp, eax
jbe 0x61363f
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
je 0x6134f4
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x90], ebp
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x8c], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 2
mov ecx, dword [esp + 0xbc]
mov esi, dword [ecx]
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
inc eax
mov ebx, dword [esi]
cmp edi, eax
jae 0x6132a5
mov dword [esp + 0x9c], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x613288
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov ebp, dword [esp + 0x90]
mov esi, ebx
mov eax, edx
mov ebx, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x8c]
mov dword [esi + 4], eax
mov esi, dword [0x95f020]
lea eax, [eax + eax*2]
lea edi, [ebx + eax*8 - 0x18]
test esi, esi
je 0x6132f9
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esp + 0xa0]
mov dword [esp + 8], ecx
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov eax, dword [ebx + 4]
cmp edx, eax
jae 0x613fed
shl ebp, 1
mov ebx, dword [ebx]
lea esi, [edx + edx*2]
lea ebx, [ebx + esi*8 + 8]
mov dword [ebx], ebp
mov ebx, dword [ecx]
inc ebp
cmp dword [ebx + 0x10], ebp
jge 0x613331
mov dword [ebx + 0x10], ebp
mov ebx, dword [esp + 0xc0]
mov ebp, dword [ebx + 8]
test ebp, ebp
jbe 0x613fe4
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00612990
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov edx, dword [esp + 8]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x84], ebx
movzx ebp, byte [esp + 0x14]
xchg ebp, eax
mov byte [esp + 0x3b], al
xchg ebp, eax
mov esi, dword [esp + 0xc0]
mov esi, dword [esi + 0x30]
mov dword [esp + 0x90], esi
nop
mov ecx, dword [ecx + 4]
mov dword [esp + 0x80], ecx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 2
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 4]
inc ebx
mov ebp, dword [ecx]
cmp edi, ebx
jae 0x613438
mov dword [esp + 0x9c], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x61341b
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0x90]
mov ebp, ecx
mov ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0x88]
mov dword [ecx + 4], ebx
mov ecx, dword [0x95f020]
lea ebx, [ebx + ebx*2]
lea edi, [ebp + ebx*8 - 0x18]
test ecx, ecx
je 0x61348c
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [eax]
mov ebx, dword [ecx + 4]
mov ebp, dword [esp + 0x80]
cmp ebp, ebx
jae 0x613fdb
mov ebx, dword [esp + 0x90]
shl ebx, 1
or ebx, 1
mov esi, dword [ecx]
lea edi, [ebp + ebp*2]
lea esi, [esi + edi*8 + 8]
mov dword [esi], ebx
mov esi, dword [eax]
inc ebx
cmp dword [esi + 0x10], ebx
jge 0x6134cf
mov dword [esi + 0x10], ebx
mov ebx, dword [esp + 0x8c]
test ebx, ebx
je 0x6134de
test edx, edx
jne 0x6134e9
xor esi, esi
xor ecx, ecx
xor edx, edx
jmp 0x613f51
mov esi, ebx
shl ebx, 1
mov edi, dword [eax]
jmp 0x613f0b
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x61359d
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x613589
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x6135ea
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x613ef9
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 0x20
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
jne 0x613795
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x6136f3
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x6136df
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x613740
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x613ef0
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 8
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xbc]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 8]
mov eax, dword [ebx + 4]
inc eax
mov esi, dword [ebx]
cmp ebp, eax
jae 0x61383e
mov dword [esp + 0x9c], ebx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x61382a
call fcn.004717d0
mov dword [edi], ecx
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], ecx
mov eax, edx
mov esi, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov dword [ebx + 4], eax
mov ebx, dword [0x95f020]
lea ebp, [eax + eax*2]
lea edi, [esi + ebp*8 - 0x18]
test ebx, ebx
je 0x61388b
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
cmp edx, ebx
jae 0x613ee7
mov eax, dword [ecx]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*8 + 8]
mov dword [eax], 0x10
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x613b11
xchg ebp, eax
cmp al, 0x10
xchg ebp, eax
je 0x613a73
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x613a45
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x613928
mov dword [esp + 0x90], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x94], eax
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x613d95
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x90], edx
lea edi, [esp + 0xa0]
xor eax, eax
call fcn.00471a5a
mov byte [esp + 0xa0], 6
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 8]
mov ebp, dword [ecx + 4]
inc ebp
mov eax, dword [ecx]
cmp ebx, ebp
jae 0x6139cc
mov dword [esp + 0x9c], ecx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6cdc40]
mov dword [esp + 0x10], eax
call fcn.0046c6b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [ebx + 8], eax
mov eax, dword [0x95f020]
test eax, eax
je 0x6139bd
call fcn.004717d0
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov ebp, edx
mov eax, ecx
mov ecx, ebx
mov edx, dword [esp + 0x90]
mov dword [ecx + 4], ebp
mov ecx, dword [0x95f020]
lea ebx, [ebp + ebp*2]
lea edi, [eax + ebx*8 - 0x18]
test ecx, ecx
je 0x613a13
mov dword [esp + 0x98], edi
lea eax, [0x6cdc40]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.0040ed00
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
lea esi, [esp + 0xa0]
call fcn.00471f34
mov dword [esp + 0xc4], edx
shl edx, 1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], 1
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x613d59
mov eax, dword [ebx + 8]
mov dword [esp + 0x90], eax
mov ecx, dword [ebx + 4]
mov dword [esp + 0x94], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x613d2c
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x613c78
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00612990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0xc0]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], bl
test bp, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.006143e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], bl
add esp, 0xb8
ret
xchg ebp, eax
cmp al, 0xe
xchg ebp, eax
jne 0x613bba
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x613c6f
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00612990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0xc0]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov byte [esp + 0x10], bl
test bp, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.00614730
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], edx
mov byte [esp + 0xd0], bl
add esp, 0xb8
ret
mov edx, dword [ebx + 8]
test edx, edx
jbe 0x613c66
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00612990
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
movzx ecx, byte [esp + 0x14]
mov byte [esp + 0x3b], cl
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc0]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov byte [esp + 0x10], cl
test bp, 0x20
setne dl
mov byte [esp + 0x14], dl
call fcn.00614590
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x88]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0xd0], al
add esp, 0xb8
ret
xor eax, eax
mov ecx, eax
call fcn.00471840
xor eax, eax
mov ecx, eax
call fcn.00471840
xor eax, eax
mov ecx, eax
call fcn.00471840
mov dword [esp + 0x50], ebx
mov dword [esp + 0x58], ebp
xchg edi, eax
mov byte [esp + 0x38], al
xchg edi, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x8c], edx
mov eax, dword [ecx + edx*4]
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00612990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0xbc]
mov dword [esp], ebp
mov esi, dword [esp + 0x64]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc], esi
movzx esi, byte [esp + 0x38]
xchg esi, eax
mov byte [esp + 0x10], al
xchg esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov byte [esp + 0x20], bl
call fcn.006141d0
mov eax, dword [esp + 0x8c]
lea edx, [eax + 1]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
movzx edi, byte [esp + 0x30]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
cmp edx, eax
jl 0x613c81
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ebx
xchg edi, eax
mov byte [esp + 0xd0], al
xchg edi, eax
add esp, 0xb8
ret
lea eax, [0x6a7120]
mov dword [esp], eax
lea eax, [0x762b50]
mov dword [esp + 4], eax
call fcn.0046aeb0
mov ebp, dword [esp + 0x40]
inc ebp
mov esi, eax
mov edi, ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov eax, edx
mov edx, ebp
mov ebp, eax
mov eax, dword [esp + 0x94]
cmp edx, ecx
jge 0x613e62
mov dword [esp + 0x40], edx
mov edi, dword [eax + edx*4]
test edx, edx
jne 0x613dd8
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00612990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
mov ebx, ebp
jmp 0x613d71
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], ebx
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00612990
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x613e16
mov ebp, dword [esp + 8]
test ebp, ebp
jne 0x613e23
xor ecx, ecx
xor ebx, ebx
xor eax, eax
xor edx, edx
jmp 0x613d71
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0xbc]
mov esi, dword [edi]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x78]
jmp 0x613ea4
movzx ebp, byte [esp + 0x39]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x613d71
xor edx, edx
jmp 0x613d71
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edi
xchg ebp, eax
mov byte [esp + 0xd0], al
xchg ebp, eax
add esp, 0xb8
ret
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0xbc]
mov edi, dword [esp + 0x44]
test edi, edi
je 0x613e4c
mov eax, dword [esi + 4]
shr edi, 1
cmp eax, edi
jbe 0x613ede
mov eax, dword [esi]
lea edi, [edi + edi*2]
lea ecx, [eax + edi*8]
mov ebx, dword [esp + 0x44]
test ebx, 1
jne 0x613ed3
lea ebx, [eax + edi*8 + 4]
mov edi, dword [ebx]
mov dword [ebx], ebp
jmp 0x613e87
lea ebx, [eax + edi*8 + 8]
mov edi, dword [ecx + 8]
mov dword [ebx], ebp
jmp 0x613e87
mov ecx, eax
mov eax, edi
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov ebx, ebp
mov ebp, dword [esp + 0x80]
test ebx, ebx
je 0x613f45
mov dword [esp + 0x48], ebx
mov ecx, dword [edi + 4]
shr ebx, 1
cmp ecx, ebx
jbe 0x613fd4
mov ecx, dword [edi]
lea ebx, [ebx + ebx*2]
mov ebp, dword [esp + 0x48]
test ebp, 1
jne 0x613f3b
lea ebx, [ecx + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], edx
jmp 0x613f02
lea ebx, [ecx + ebx*8 + 8]
mov ebp, dword [ebx]
mov dword [ebx], edx
jmp 0x613f02
mov ecx, dword [esp + 0x84]
movzx edx, byte [esp + 0x3b]
test esi, esi
je 0x613f61
test ebp, ebp
je 0x613f61
mov byte [esp + 0x37], dl
mov ebx, dword [eax]
jmp 0x613f91
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov byte [esp + 0xd0], dl
add esp, 0xb8
ret
movzx edx, byte [esp + 0x37]
mov ecx, edi
test ecx, ecx
je 0x613fc5
mov edi, dword [ebx + 4]
mov eax, ecx
shr eax, 1
cmp edi, eax
jbe 0x613fcd
mov edi, dword [ebx]
lea eax, [eax + eax*2]
lea edx, [edi + eax*8]
test ecx, 1
jne 0x613fba
lea edx, [edi + eax*8 + 4]
mov edi, dword [edx]
mov dword [edx], ebp
jmp 0x613f8a
lea eax, [edi + eax*8 + 8]
mov edi, dword [edx + 8]
mov dword [eax], ebp
jmp 0x613f8a
shl ebp, 1
mov eax, ebp
mov ecx, esi
jmp 0x613f67
mov ecx, edi
call fcn.00471850
mov eax, ebx
call fcn.00471850
mov eax, ebp
mov ecx, ebx
call fcn.00471850
xor eax, eax
mov ecx, eax
call fcn.00471840
mov ecx, eax
mov eax, edx
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov eax, edx
mov ecx, ebx
call fcn.00471850
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0xbc]
mov eax, dword [esp + 0x8c]
mov edi, esi
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0xbc]
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x90]
cmp eax, ebp
jge 0x614124
xchg edi, eax
mov byte [esp + 0x3a], al
xchg edi, eax
mov dword [esp + 0x60], edx
mov edi, dword [ebx + 0x1c]
lea edx, [eax + 1]
cmp edi, edx
jb 0x6141b5
cmp eax, edx
ja 0x6141ae
mov dword [esp + 0x3c], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebx + 0x14]
sub edi, eax
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
add eax, ecx
movzx ecx, word [ebx + 2]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
mov word [esp + 0x10], cx
call fcn.00614840
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov ebp, dword [esp + 0x3c]
test ebp, ebp
jne 0x6140d6
mov ebp, eax
mov esi, ebx
jmp 0x614011
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x6140e2
test eax, eax
jne 0x6140ef
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor esi, esi
jmp 0x614011
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], ecx
mov esi, dword [esp + 0xbc]
mov edi, dword [esi]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
jmp 0x61416a
movzx esi, byte [esp + 0x3a]
and esi, ebx
jmp 0x614011
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], eax
xchg edi, eax
mov byte [esp + 0xd0], al
xchg edi, eax
add esp, 0xb8
ret
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0xbc]
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x614118
mov ecx, dword [edi + 4]
shr esi, 1
cmp ecx, esi
jbe 0x6141a7
mov ecx, dword [edi]
lea esi, [esi + esi*2]
lea edx, [ecx + esi*8]
mov ebp, dword [esp + 0x4c]
test ebp, 1
jne 0x61419b
lea ebp, [ecx + esi*8 + 4]
mov esi, dword [ebp]
mov dword [ebp], eax
jmp 0x61414d
lea ebp, [ecx + esi*8 + 8]
mov esi, dword [edx + 8]
mov dword [ebp], eax
jmp 0x61414d
mov eax, esi
call fcn.00471850
mov ecx, edx
call fcn.004718a0
mov ecx, edx
mov edx, edi
call fcn.00471880
nop
call fcn.004703c0
jmp fcn.00612990