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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x13c]
cmp eax, dword [ecx + 8]
jbe 0x4a4549
sub esp, 0x1bc
mov ebx, dword [esp + 0x1c4]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
ja 0x4a35d0
xchg ebp, eax
cmp al, 4
xchg ebp, eax
ja 0x4a312a
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jbe 0x4a2fd4
xchg ebp, eax
cmp al, 3
xchg ebp, eax
jne 0x4a2f73
mov ebp, dword [ebx + 0x18]
test ebp, ebp
je 0x4a2e63
mov dword [esp + 0x88], ebp
mov esi, dword [esp + 0x1c0]
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
xor eax, eax
jmp 0x4a43d3
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x18c]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x18c], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x4a2f04
mov dword [esp + 0xb0], esi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a2ef2
mov dword [edi], eax
jmp 0x4a2ef7
call fcn.00459240
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x5a34c0]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x4a2f29
lea esi, [esp + 0x18c]
call fcn.004598e4
jmp 0x4a2f4d
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x18c]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
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 + 0x1c0]
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.004a4bc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 1
xchg ebp, eax
je 0x4a30fa
xchg ebp, eax
cmp al, 2
xchg ebp, eax
jne 0x4a40e4
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x1a4]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x1a4], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x4a308b
mov dword [esp + 0xb0], esi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a3079
mov dword [edi], eax
jmp 0x4a307e
call fcn.00459240
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x5a34c0]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x4a30b0
lea esi, [esp + 0x1a4]
call fcn.004598e4
jmp 0x4a30d4
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x1a4]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1d0], 0
mov byte [esp + 0x1d4], 0
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 6
xchg ebp, eax
ja 0x4a320c
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x4a31a4
mov eax, dword [0x579850]
mov ecx, dword [0x579854]
mov edx, dword [0x579858]
mov ebx, dword [esp + 0x1c0]
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.004a4bc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
mov eax, dword [0x579840]
mov ecx, dword [0x579844]
mov edx, dword [0x579848]
mov ebx, dword [esp + 0x1c0]
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.004a4bc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 7
xchg ebp, eax
jne 0x4a3351
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x174]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x174], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a32bf
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a32a8
mov dword [edi], eax
jmp 0x4a32ad
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a32e4
lea esi, [esp + 0x174]
call fcn.004598e4
jmp 0x4a3308
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x174]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a439a
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 1
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 8
xchg ebp, eax
jne 0x4a3496
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x15c]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x15c], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a3404
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a33ed
mov dword [edi], eax
jmp 0x4a33f2
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a3429
lea esi, [esp + 0x15c]
call fcn.004598e4
jmp 0x4a344d
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x15c]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a4395
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 2
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x144]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x144], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a353e
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a3527
mov dword [edi], eax
jmp 0x4a352c
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a3563
lea esi, [esp + 0x144]
call fcn.004598e4
jmp 0x4a3587
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x144]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a4390
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 4
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
ja 0x4a3c85
xchg ebp, eax
cmp al, 0xb
xchg ebp, eax
jbe 0x4a3a06
xchg ebp, eax
cmp al, 0xc
xchg ebp, eax
je 0x4a38cc
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x88], ebp
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
lea edi, [esp + 0xe4]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0xe4], 2
mov ecx, dword [esp + 0x1c0]
mov esi, ebx
mov ebx, dword [ecx]
mov dword [esp + 0xb0], ebx
mov edi, ebp
mov ebp, dword [ebx + 4]
mov edx, dword [ebx]
mov ecx, dword [ebx + 8]
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a36a3
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a368a
mov dword [edi], eax
jmp 0x4a368f
call fcn.00459240
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x88]
mov ebp, ecx
mov edx, eax
xor eax, eax
lea ecx, [ebp + 1]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edx, [edx + ebx*8]
test ecx, ecx
jne 0x4a36d3
mov edi, edx
mov ebx, esi
lea esi, [esp + 0xe4]
call fcn.004598e4
jmp 0x4a36f9
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [esp + 0xe4]
mov dword [esp + 8], eax
call fcn.0040f210
xor eax, eax
mov ebx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c0]
mov ebp, dword [edx]
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp]
mov esi, dword [esp + 0x84]
cmp esi, ecx
jae 0x4a4389
mov edi, dword [esp + 0x88]
shl edi, 1
mov ecx, esi
lea esi, [esi + esi*2]
lea ebp, [ebp + esi*8 + 8]
mov dword [ebp], edi
mov ebp, dword [edx]
lea esi, [edi + 1]
cmp dword [ebp + 0x10], esi
jge 0x4a3739
mov dword [ebp + 0x10], esi
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 4]
test ebp, ebp
jbe 0x4a4380
mov eax, dword [esi]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004a2de0
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov edx, dword [esp + 0x1c4]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x80], ebx
nop
mov ecx, dword [ecx + 4]
mov dword [esp + 0x7c], ecx
mov ebp, dword [esp + 8]
mov dword [esp + 0x78], ebp
movzx esi, byte [esp + 0x14]
xchg esi, eax
mov byte [esp + 0x36], al
xchg esi, eax
lea edi, [esp + 0xcc]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0xcc], 2
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax]
mov edi, dword [ecx + 4]
mov ebx, dword [ecx]
mov esi, dword [ecx + 8]
lea ebp, [edi + 1]
cmp esi, ebp
jae 0x4a3827
mov dword [esp + 0xb0], ecx
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a380c
mov dword [edi], eax
jmp 0x4a3811
call fcn.00459240
mov edx, dword [esp + 0x88]
mov ebx, eax
mov eax, dword [esp + 0x1c0]
mov ebp, ecx
mov ecx, edi
mov edi, ebp
lea ebp, [edi + 1]
mov dword [ecx + 4], ebp
mov ecx, dword [0x5a34c0]
lea ebp, [edi + edi*2]
lea edi, [ebx + ebp*8]
test ecx, ecx
jne 0x4a384b
lea esi, [esp + 0xcc]
call fcn.004598e4
jmp 0x4a3876
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x88]
mov ebx, dword [eax]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
mov ebp, dword [esp + 0x7c]
cmp ebp, ecx
jae 0x4a4379
shl edx, 1
or edx, 1
lea esi, [ebp + ebp*2]
lea ebx, [ebx + esi*8 + 8]
mov dword [ebx], edx
mov ebx, dword [eax]
inc edx
cmp dword [ebx + 0x10], edx
jge 0x4a38a3
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0x84]
test edx, edx
je 0x4a38b6
mov ebx, dword [esp + 0x78]
test ebx, ebx
jne 0x4a38c1
xor esi, esi
xor ecx, ecx
xor edx, edx
jmp 0x4a42d6
mov esi, edx
shl edx, 1
mov edi, dword [eax]
jmp 0x4a428e
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0xfc], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a3974
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a395d
mov dword [edi], eax
jmp 0x4a3962
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a3999
lea esi, [esp + 0xfc]
call fcn.004598e4
jmp 0x4a39bd
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xfc]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a427e
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x20
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
jne 0x4a3b4b
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x12c]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x12c], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a3ab9
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a3aa2
mov dword [edi], eax
jmp 0x4a3aa7
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a3ade
lea esi, [esp + 0x12c]
call fcn.004598e4
jmp 0x4a3b02
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x12c]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a4279
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 8
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0x114]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0x114], 3
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx]
mov ebp, dword [ebx + 4]
mov eax, edx
mov edx, dword [ebx]
mov esi, ecx
mov ecx, dword [ebx + 8]
mov edi, ebx
lea ebx, [ebp + 1]
cmp ecx, ebx
jae 0x4a3bf3
mov dword [esp + 0xb0], edi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a3bdc
mov dword [edi], eax
jmp 0x4a3be1
call fcn.00459240
mov esi, dword [esp + 0x1c0]
mov ebp, ecx
mov edx, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebp + 1]
mov dword [edi + 4], ecx
mov ecx, dword [0x5a34c0]
lea ebx, [ebp + ebp*2]
lea edi, [edx + ebx*8]
test ecx, ecx
jne 0x4a3c18
lea esi, [esp + 0x114]
call fcn.004598e4
jmp 0x4a3c3c
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x114]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x1c0]
mov edx, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
cmp eax, ecx
jae 0x4a4274
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 8]
mov dword [ecx], 0x10
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xf
xchg ebp, eax
jbe 0x4a3ea9
xchg ebp, eax
cmp al, 0x10
xchg ebp, eax
je 0x4a3e0b
xchg ebp, eax
cmp al, 0x12
xchg ebp, eax
jne 0x4a3ddd
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
je 0x4a3ccd
mov dword [esp + 0x88], ecx
mov dword [esp + 0xac], edx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x4a4122
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx]
nop
mov edx, dword [edx + 4]
mov dword [esp + 0x88], edx
lea edi, [esp + 0xb4]
xor eax, eax
call fcn.0045940a
mov byte [esp + 0xb4], 6
mov ecx, dword [esp + 0x1c0]
mov ecx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx]
mov eax, edx
mov edx, dword [ecx + 8]
mov esi, ecx
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x4a3d6e
mov dword [esp + 0xb0], esi
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.004439c0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
mov dword [edi + 8], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a3d5c
mov dword [edi], eax
jmp 0x4a3d61
call fcn.00459240
mov esi, edi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x88]
lea ecx, [ebx + 1]
mov dword [esi + 4], ecx
mov ecx, dword [0x5a34c0]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x4a3d93
lea esi, [esp + 0xb4]
call fcn.004598e4
jmp 0x4a3db7
lea eax, [0x4ca2a0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xb4]
mov dword [esp + 8], eax
call fcn.0040f210
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], eax
shl eax, 1
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], 1
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0x13
xchg ebp, eax
jne 0x4a40e4
mov eax, dword [ebx + 4]
mov dword [esp + 0xa8], eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x88], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x4a40b7
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x4a4005
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004a2de0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c4]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1c0]
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.004a4770
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
xchg ebp, eax
cmp al, 0xe
xchg ebp, eax
jne 0x4a3f52
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x4a3ffe
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004a2de0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c4]
movzx ebp, word [ebp + 2]
mov esi, dword [esp + 0x1c0]
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.004a4aa0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
movzx ebx, byte [esp + 0x24]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], edx
mov byte [esp + 0x1d4], bl
add esp, 0x1bc
ret
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
test ecx, ecx
jbe 0x4a3ff7
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004a2de0
mov eax, dword [esp + 0x1c4]
movzx eax, word [eax + 2]
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
movzx edx, byte [esp + 0x14]
mov byte [esp + 0x37], dl
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x1c0]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov byte [esp + 0x10], dl
test ax, 0x20
setne al
mov byte [esp + 0x14], al
call fcn.004a4910
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], ecx
movzx eax, byte [esp + 0x37]
mov byte [esp + 0x1d4], al
add esp, 0x1bc
ret
xor eax, eax
call fcn.004592c0
xor eax, eax
call fcn.004592c0
xor eax, eax
call fcn.004592c0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], ebp
xchg edi, eax
mov byte [esp + 0x3a], al
xchg edi, eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x84], edx
mov ecx, dword [eax + edx*4]
mov ebx, dword [esp + 0x1c0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.004a2de0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x1c0]
mov dword [esp], ebp
mov esi, dword [esp + 0x70]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x64]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xc], esi
movzx esi, byte [esp + 0x3a]
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.004a4560
mov eax, dword [esp + 0x84]
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 + 0xa8]
mov ecx, dword [esp + 0x88]
cmp edx, ecx
jl 0x4a400c
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1cc], ebp
mov dword [esp + 0x1d0], ebx
xchg edi, eax
mov byte [esp + 0x1d4], al
xchg edi, eax
add esp, 0x1bc
ret
lea eax, [0x4c3500]
mov dword [esp], eax
lea eax, [0x4f6db8]
mov dword [esp + 4], eax
call fcn.00431520
mov edx, dword [esp + 0x44]
inc edx
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + 0x88]
mov eax, edx
mov edx, dword [esp + 0xac]
mov ecx, ebx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x88]
cmp eax, ecx
jge 0x4a41ee
mov dword [esp + 0x44], eax
mov edi, dword [edx + eax*4]
test eax, eax
jne 0x4a4161
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004a2de0
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
jmp 0x4a40fc
xchg ebp, eax
mov byte [esp + 0x39], al
xchg ebp, eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004a2de0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
movzx ebx, byte [esp + 0x14]
mov ebp, dword [esp + 0x6c]
test ebp, ebp
je 0x4a419f
test edx, edx
jne 0x4a41ac
xor ecx, ecx
xor ebp, ebp
xor eax, eax
xor ebx, ebx
jmp 0x4a40fc
mov byte [esp + 0x3b], bl
mov edi, dword [esp + 0x1c0]
mov esi, edi
mov edi, dword [edi]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x94]
jmp 0x4a422e
movzx edx, byte [esp + 0x39]
test dl, dl
jne 0x4a40fc
xor ebx, ebx
jmp 0x4a40fc
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1d0], edi
xchg ebp, eax
mov byte [esp + 0x1d4], al
xchg ebp, eax
add esp, 0x1bc
ret
mov edi, dword [esp + 0x9c]
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x50]
test esi, esi
je 0x4a41da
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x4a426b
lea ebx, [esi + esi*2]
lea esi, [ebp + ebx*8]
mov edi, dword [esp + 0x50]
test edi, 1
jne 0x4a425e
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], edx
jmp 0x4a4213
mov esi, dword [esi + 8]
lea ebx, [ebp + ebx*8 + 8]
mov dword [ebx], edx
mov ebp, esi
jmp 0x4a4213
mov eax, esi
mov ecx, ebx
call fcn.004592d0
call fcn.004592d0
call fcn.004592d0
call fcn.004592d0
mov esi, dword [esp + 0x84]
mov edx, ebp
mov ebp, ecx
test edx, edx
je 0x4a42ca
mov dword [esp + 0x4c], edx
mov ecx, ebp
mov ebp, dword [edi]
mov esi, dword [edi + 4]
shr edx, 1
cmp esi, edx
jbe 0x4a4370
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x4c]
test esi, 1
jne 0x4a42c0
lea edx, [ebp + edx*8 + 4]
mov ebp, dword [edx]
mov dword [edx], ebx
jmp 0x4a4283
lea edx, [ebp + edx*8 + 8]
mov ebp, dword [edx]
mov dword [edx], ebx
jmp 0x4a4283
mov ecx, dword [esp + 0x80]
movzx edx, byte [esp + 0x36]
test esi, esi
je 0x4a42e9
test ebp, ebp
je 0x4a42e9
mov ebx, dword [eax]
mov dword [esp + 0xa0], ebx
jmp 0x4a4321
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov byte [esp + 0x1d4], dl
add esp, 0x1bc
ret
mov edi, dword [esp + 0xa0]
mov edx, eax
mov esi, ecx
mov ecx, ebx
mov ebx, edi
test ecx, ecx
je 0x4a435f
mov dword [esp + 0x54], ecx
mov edi, dword [ebx]
mov eax, edx
mov edx, dword [ebx + 4]
shr ecx, 1
cmp edx, ecx
jbe 0x4a4367
lea edx, [ecx + ecx*2]
mov ecx, esi
lea esi, [edi + edx*8]
mov ebx, dword [esp + 0x54]
test ebx, 1
jne 0x4a4354
lea edx, [edi + edx*8 + 4]
mov ebx, dword [edx]
mov dword [edx], ebp
jmp 0x4a4312
mov ebx, dword [esi + 8]
lea edx, [edi + edx*8 + 8]
mov dword [edx], ebp
jmp 0x4a4312
shl ebp, 1
mov eax, ebp
mov ecx, esi
jmp 0x4a42ef
mov eax, ecx
mov ecx, edx
call fcn.004592d0
mov eax, edx
mov ecx, esi
call fcn.004592d0
mov eax, ebp
call fcn.004592d0
xor eax, eax
mov ecx, ebp
call fcn.004592c0
mov eax, esi
call fcn.004592d0
call fcn.004592d0
call fcn.004592d0
call fcn.004592d0
mov ebx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x1c0]
mov eax, dword [esp + 0x84]
mov edi, esi
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x1c0]
mov edx, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x88]
cmp eax, ebp
jge 0x4a44bc
xchg edi, eax
mov byte [esp + 0x38], al
xchg edi, eax
mov edi, dword [ebx + 0x1c]
mov ebp, dword [ebx + 0x14]
mov dword [esp + 0xa4], ebp
lea ebp, [eax + 1]
cmp edi, ebp
jb 0x4a453f
cmp eax, ebp
ja 0x4a4538
mov dword [esp + 0x40], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x74], ecx
mov dword [esp + 0x68], edx
movzx ecx, word [ebx + 2]
mov dword [esp], esi
sub edi, eax
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
mov edi, dword [esp + 0xa4]
add eax, edi
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], edx
mov word [esp + 0x10], cx
call fcn.004a4bc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x20]
mov ebp, dword [esp + 0x40]
test ebp, ebp
jne 0x4a4472
mov ebp, eax
mov esi, ebx
jmp 0x4a439f
mov ebp, dword [esp + 0x74]
test ebp, ebp
je 0x4a447e
test eax, eax
jne 0x4a448b
xor ecx, ecx
xor ebp, ebp
xor edx, edx
xor esi, esi
jmp 0x4a439f
mov byte [esp + 0x3b], bl
mov esi, dword [esp + 0x1c0]
mov edi, dword [esi]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x8c]
jmp 0x4a44f9
movzx esi, byte [esp + 0x38]
and esi, ebx
jmp 0x4a439f
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], edx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1d0], eax
xchg edi, eax
mov byte [esp + 0x1d4], al
xchg edi, eax
add esp, 0x1bc
ret
movzx ebx, byte [esp + 0x3b]
mov esi, dword [esp + 0x1c0]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x48]
test esi, esi
je 0x4a44b0
mov ebp, dword [edi]
mov ebx, dword [edi + 4]
shr esi, 1
cmp ebx, esi
jbe 0x4a452f
lea ebx, [esi + esi*2]
mov esi, dword [esp + 0x48]
test esi, 1
jne 0x4a4525
lea ebx, [ebp + ebx*8 + 4]
mov ebp, dword [ebx]
mov dword [ebx], eax
jmp 0x4a44e5
lea ebx, [ebp + ebx*8 + 8]
mov ebp, dword [ebx]
mov dword [ebx], eax
jmp 0x4a44e5
mov eax, esi
mov ecx, ebx
call fcn.004592d0
mov ecx, ebp
call fcn.00459320
mov ecx, ebp
mov edx, edi
call fcn.00459300
nop
call fcn.00457e00
jmp fcn.004a2de0