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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x8c]
cmp eax, dword [ecx + 8]
jbe 0x4a76f3
sub esp, 0x10c
mov ecx, dword [esp + 0x118]
cmp ecx, 2
jl 0x4a63f4
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x114]
mov eax, ebp
mov edx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov word [esp + 0x22], ax
xor edx, edx
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + 0x2c], edx
xor edx, edx
mov dword [esp + 0xcc], edx
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x11c]
mov eax, ebp
mov edx, ebx
jmp 0x4a6434
mov eax, dword [esp + 0x114]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x128], eax
add esp, 0x10c
ret
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x38], ebp
mov ebp, edi
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xdc], ebp
cmp ecx, esi
jl 0x4a69f2
mov dword [esp + 0x30], esi
jle 0x4a650e
jbe 0x4a76eb
mov ebp, dword [eax + esi*4]
cmp byte [ebp], 0x12
jne 0x4a647e
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 4]
test ebx, ebx
jle 0x4a6476
mov ebp, dword [esi]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
jmp 0x4a647e
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
cmp byte [ebp], 3
je 0x4a649f
xor ebp, ebp
xor ebp, ebp
mov dword [esp + 0x50], ebp
xor ebp, ebp
mov dword [esp + 0xe0], ebp
xor ebp, ebp
mov dword [esp + 0x54], ebp
xor ebp, ebp
jmp 0x4a64e2
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0xc0], ebx
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x1c]
movzx ebp, word [ebp + 2]
and ebp, 1
mov dword [esp + 0x50], esi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0xb8]
movzx ebx, word [esp + 0x22]
cmp bx, bp
jne 0x4a75e5
mov word [esp + 0x24], bp
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
jmp 0x4a7662
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x7c], eax
xor eax, eax
mov dword [esp + 0xf4], eax
xor eax, eax
mov word [esp + 0x26], ax
mov eax, dword [esp + 0x88]
cmp edi, esi
jne 0x4a654c
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0xdc]
jmp 0x4a69c5
lea ebp, [edi + 1]
cmp esi, ebp
jne 0x4a661b
cmp ecx, edi
jbe 0x4a75de
mov ebp, dword [esp + 0x38]
lea esi, [ebp + 1]
mov ebp, dword [eax + edi*4]
mov dword [esp + 0x104], ebp
cmp ebx, esi
jb 0x4a657d
mov edi, dword [esp + 0xdc]
jmp 0x4a65d3
lea eax, [0x4cc380]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov edi, ebp
mov ebp, dword [esp + 0x104]
mov dword [esp + 0x74], esi
mov dword [esp + 0x3c], ebx
mov ebx, dword [0x5a34c0]
mov esi, dword [esp + 0x38]
lea ebp, [edi + esi*4]
test ebx, ebx
jne 0x4a65f8
mov ebx, dword [esp + 0x104]
mov dword [edi + esi*4], ebx
jmp 0x4a660e
mov ebx, edi
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x104]
call fcn.00459240
mov eax, esi
mov edi, ebx
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x74]
jmp 0x4a69c5
mov dword [esp + 0x70], edi
nop
mov ebp, dword [esp + 0x110]
mov ebx, dword [ebp + 0x10]
lea edx, [ebp + 0x10]
mov dword [esp + 0xf0], edx
test ebx, ebx
je 0x4a6695
mov ecx, dword [0x5a34c0]
mov esi, dword [ebx + 0x10]
test ecx, ecx
jne 0x4a6655
mov dword [ebp + 0x10], esi
mov edi, ebx
mov esi, eax
xor eax, eax
call fcn.00459401
jmp 0x4a66bc
mov dword [esp + 0xd8], ebx
mov edi, edx
mov eax, esi
call fcn.00459240
lea ecx, [0x4cd480]
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.0040f3f0
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x114]
jmp 0x4a66bc
lea eax, [0x4cd480]
mov dword [esp], eax
call fcn.0040b240
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x114]
mov dword [esp + 0x104], ebx
mov byte [ebx], 3
movzx eax, word [esp + 0x22]
mov word [ebx + 2], ax
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x14]
mov edi, dword [esp + 0x28]
cmp edi, eax
jbe 0x4a670b
lea edx, [0x4c2e00]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
call fcn.004439c0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x74], eax
mov dword [esp + 0xec], ecx
mov dword [esp], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp + 4], edx
shl edi, 2
mov dword [esp + 8], edi
call fcn.00459b10
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x104]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0x74]
mov dword [ecx + 0x1c], edx
mov edx, dword [0x5a34c0]
test edx, edx
jne 0x4a675b
mov ebx, dword [esp + 0xec]
mov dword [ecx + 0x14], ebx
jmp 0x4a676e
lea edi, [ecx + 0x14]
mov edx, eax
mov eax, dword [esp + 0xec]
call fcn.00459240
mov eax, edx
mov ebx, dword [esp + 0x114]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x118]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x70]
jmp 0x4a7578
mov edi, dword [esp + 0x11c]
cmp edi, edx
jb 0x4a75cc
mov eax, dword [esp + 0x70]
cmp eax, edx
ja 0x4a75c5
mov dword [esp], ebp
sub edi, eax
mov esi, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
shl eax, 2
sar edi, 0x1f
and eax, edi
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
sub edx, eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov byte [esp + 0x10], 0x13
call fcn.004a5fc0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc4], eax
nop
mov ecx, dword [esp + 0x110]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x4a684c
mov dword [esp + 0xd0], edi
mov ebx, dword [0x5a34c0]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x4a681a
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.00459401
jmp 0x4a6843
mov eax, ebp
mov ecx, edi
mov edi, dword [esp + 0xf0]
call fcn.00459240
lea edx, [0x4cd480]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.0040f3f0
mov edx, dword [esp + 0xc4]
mov edi, dword [esp + 0xd0]
jmp 0x4a6865
lea eax, [0x4cd480]
mov dword [esp], eax
call fcn.0040b240
mov edi, dword [esp + 4]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0xd0], edi
mov byte [edi], 0x12
mov ebx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
cmp ebx, 2
jb 0x4a6881
mov eax, 2
jmp 0x4a68c4
lea eax, [0x4cc380]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
add eax, 2
mov edx, dword [esp + 0xc4]
mov edi, dword [esp + 0xd0]
mov esi, dword [0x5a34c0]
test esi, esi
jne 0x4a68dd
mov esi, dword [esp + 0x104]
mov dword [ebp], esi
mov dword [ebp + 4], edx
jmp 0x4a6903
mov ecx, edi
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x104]
call fcn.00459240
add ebp, 4
mov eax, edx
mov edx, edi
mov edi, ebp
call fcn.00459240
mov eax, esi
mov ebp, edx
mov edi, ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebx
mov ebx, dword [0x5a34c0]
test ebx, ebx
jne 0x4a6918
mov dword [edi + 4], ebp
jmp 0x4a6928
lea ebx, [edi + 4]
mov eax, ebp
mov ecx, edi
mov edi, ebx
call fcn.00459240
mov edi, ecx
mov ebx, dword [esp + 0x38]
lea ebp, [ebx + 1]
mov esi, dword [esp + 0x3c]
cmp esi, ebp
jb 0x4a6940
mov eax, dword [esp + 0xdc]
jmp 0x4a6985
lea eax, [0x4cc380]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc eax
mov edi, dword [esp + 0xd0]
mov esi, ebx
mov ebx, dword [esp + 0x38]
mov ecx, eax
mov eax, ebp
mov ebp, ecx
mov ecx, ebp
mov ebp, dword [0x5a34c0]
mov edx, esi
lea esi, [eax + ebx*4]
test ebp, ebp
jne 0x4a699b
mov dword [eax + ebx*4], edi
jmp 0x4a69aa
mov ebx, edi
mov edi, esi
mov ebp, eax
mov eax, ebx
call fcn.00459240
mov eax, ebp
mov ebx, edx
mov ebp, ecx
mov edi, eax
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov esi, dword [esp + 0x30]
movzx esi, word [esp + 0x26]
mov word [esp + 0x22], si
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xcc], esi
mov esi, dword [esp + 0x30]
jmp 0x4a641e
mov ecx, dword [esp + 0x38]
mov eax, ebp
mov edx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0xe8], eax
xor edx, edx
mov dword [esp + 0x7c], edx
mov eax, ebp
mov edx, ebx
jmp 0x4a6a26
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x7c], ebp
mov ebp, edi
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x108], ebp
cmp esi, ecx
jg 0x4a6ee1
mov dword [esp + 0x30], esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edi
jge 0x4a6ba3
jae 0x4a7551
mov ebp, dword [eax + esi*4]
movzx ebx, byte [ebp]
cmp bl, 2
jne 0x4a6a5d
xor ebp, ebp
jmp 0x4a6a87
cmp bl, 0x12
jne 0x4a6a87
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 4]
test ebx, ebx
jle 0x4a6a83
mov ebx, dword [esi]
cmp byte [ebx], 2
jne 0x4a6a7b
mov esi, dword [esp + 0x30]
xor ebp, ebp
jmp 0x4a6a87
mov esi, dword [esp + 0x30]
mov ebp, ebx
jmp 0x4a6a87
mov esi, dword [esp + 0x30]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0xe8]
test ebx, ebx
jne 0x4a6aaf
mov dword [esp + 0xb0], eax
xor eax, eax
mov byte [esp + 0x21], al
mov eax, dword [esp + 0xb0]
jmp 0x4a6ae9
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.004adbd0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x74]
mov byte [esp + 0x21], al
mov eax, dword [esp + 0xdc]
movzx esi, byte [esp + 0x21]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4a6b80
movzx esi, byte [ebx]
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x4a6b08
cmp dword [ebx + 0x18], 1
je 0x4a6b63
xchg esi, eax
cmp al, 4
xchg esi, eax
je 0x4a6b63
xchg esi, eax
cmp al, 5
xchg esi, eax
je 0x4a6b63
xchg esi, eax
cmp al, 6
xchg esi, eax
je 0x4a6b63
xchg esi, eax
cmp al, 0x11
xchg esi, eax
jne 0x4a6b80
mov esi, dword [ebx + 0x28]
cmp dword [ebx + 0x2c], esi
jne 0x4a6b80
mov esi, dword [ebx + 8]
mov ebp, dword [ebx + 4]
test esi, esi
jbe 0x4a7548
mov ebp, dword [ebp]
movzx esi, byte [ebp]
xchg esi, eax
cmp al, 3
xchg esi, eax
jne 0x4a6b4e
cmp dword [ebp + 0x18], 1
je 0x4a6b63
xchg esi, eax
cmp al, 4
xchg esi, eax
je 0x4a6b63
xchg esi, eax
cmp al, 5
xchg esi, eax
je 0x4a6b63
xchg esi, eax
cmp al, 6
xchg esi, eax
jne 0x4a6b79
mov esi, edi
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x108]
jmp 0x4a6a13
mov ebp, dword [esp + 0xe4]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x108]
mov esi, dword [esp + 0x30]
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x104], esi
mov esi, dword [esp + 0x30]
jmp 0x4a6bba
mov dword [esp + 0xa8], eax
xor eax, eax
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xa8]
cmp edi, esi
jne 0x4a6bce
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x108]
jmp 0x4a6ec6
lea ebp, [edi + 1]
cmp esi, ebp
jne 0x4a6c97
cmp edi, ecx
jae 0x4a7541
mov ebp, dword [esp + 0x7c]
lea esi, [ebp + 1]
mov ebp, dword [eax + edi*4]
mov dword [esp + 0x100], ebp
cmp ebx, esi
jb 0x4a6bff
mov edi, dword [esp + 0x108]
jmp 0x4a6c4f
lea eax, [0x4cc380]
mov dword [esp], eax
mov ecx, dword [esp + 0x108]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov edi, ebp
mov ebp, dword [esp + 0x100]
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
mov ebx, dword [0x5a34c0]
mov esi, dword [esp + 0x7c]
lea ebp, [edi + esi*4]
test ebx, ebx
jne 0x4a6c74
mov ebx, dword [esp + 0x100]
mov dword [edi + esi*4], ebx
jmp 0x4a6c8a
mov ebx, edi
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x100]
call fcn.00459240
mov eax, esi
mov edi, ebx
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
jmp 0x4a6ec6
mov ebp, dword [esp + 0x110]
jmp 0x4a74d4
cmp esi, edx
ja 0x4a7533
mov edi, dword [esp + 0x74]
cmp edi, esi
ja 0x4a752a
mov dword [esp], ebp
sub edx, edi
mov ebx, edx
neg edx
shl edi, 2
sar edx, 0x1f
and edi, edx
lea edx, [eax + edi]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x74]
sub esi, edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov byte [esp + 0x10], 0x13
call fcn.004a5fc0
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
nop
mov ecx, dword [esp + 0x110]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x4a6d53
mov dword [esp + 0xd4], edi
mov ebx, dword [0x5a34c0]
mov ebp, dword [edi + 0x10]
test ebx, ebx
jne 0x4a6d23
mov dword [ecx + 0x10], ebp
mov edx, eax
xor eax, eax
call fcn.00459401
jmp 0x4a6d4a
lea edx, [ecx + 0x10]
mov eax, ebp
mov ebx, edi
mov edi, edx
call fcn.00459240
lea edx, [0x4cd480]
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.0040f3f0
mov edx, dword [esp + 0xc8]
mov edi, dword [esp + 0xd4]
jmp 0x4a6d6c
lea eax, [0x4cd480]
mov dword [esp], eax
call fcn.0040b240
mov edi, dword [esp + 4]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xd4], edi
mov byte [edi], 0x12
mov ebx, dword [edi + 0xc]
mov ebp, dword [edi + 4]
cmp ebx, 2
jb 0x4a6d88
mov eax, 2
jmp 0x4a6dcb
lea eax, [0x4cc380]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
add eax, 2
mov edx, dword [esp + 0xc8]
mov edi, dword [esp + 0xd4]
mov esi, dword [0x5a34c0]
test esi, esi
jne 0x4a6de4
mov esi, dword [esp + 0xe8]
mov dword [ebp], esi
mov dword [ebp + 4], edx
jmp 0x4a6e0a
mov ecx, edi
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0xe8]
call fcn.00459240
add ebp, 4
mov eax, edx
mov edx, edi
mov edi, ebp
call fcn.00459240
mov eax, esi
mov ebp, edx
mov edi, ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], ebx
mov ebx, dword [0x5a34c0]
test ebx, ebx
jne 0x4a6e1f
mov dword [edi + 4], ebp
jmp 0x4a6e2f
lea ebx, [edi + 4]
mov eax, ebp
mov ecx, edi
mov edi, ebx
call fcn.00459240
mov edi, ecx
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + 1]
mov esi, dword [esp + 0x78]
cmp esi, ebp
jb 0x4a6e47
mov eax, dword [esp + 0x108]
jmp 0x4a6e8c
lea eax, [0x4cc380]
mov dword [esp], eax
mov ecx, dword [esp + 0x108]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc eax
mov edi, dword [esp + 0xd4]
mov esi, ebx
mov ebx, dword [esp + 0x7c]
mov ecx, eax
mov eax, ebp
mov ebp, ecx
mov ecx, ebp
mov ebp, dword [0x5a34c0]
mov edx, esi
lea esi, [eax + ebx*4]
test ebp, ebp
jne 0x4a6ea2
mov dword [eax + ebx*4], edi
jmp 0x4a6eb1
mov ebx, edi
mov edi, esi
mov ebp, eax
mov eax, ebx
call fcn.00459240
mov eax, ebp
mov ebx, edx
mov ebp, ecx
mov edi, eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
mov esi, dword [esp + 0x104]
mov dword [esp + 0xe8], esi
mov esi, dword [esp + 0x30]
jmp 0x4a6a13
mov ecx, dword [esp + 0x7c]
mov eax, ebp
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x4a6f03
inc eax
mov edi, ecx
mov ebp, esi
mov ecx, dword [esp + 0x7c]
mov esi, edx
mov edx, eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x38], edi
mov dword [esp + 0xdc], ebp
cmp edx, ecx
jg 0x4a7252
mov dword [esp + 0x58], edx
mov dword [esp + 0x6c], ebx
jge 0x4a6f6e
jae 0x4a74ad
mov edx, dword [eax + edx*4]
movzx ebx, byte [edx]
cmp bl, 3
jne 0x4a6f37
cmp dword [edx + 0x18], 1
je 0x4a6f46
cmp bl, 4
je 0x4a6f46
cmp bl, 5
je 0x4a6f46
cmp bl, 6
jne 0x4a6f66
mov eax, dword [esp + 0x58]
mov ebp, ecx
mov edi, dword [esp + 0x108]
mov edx, esi
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0xdc]
jmp 0x4a6eef
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
cmp esi, edx
jne 0x4a6f8a
cmp edx, ecx
mov eax, edx
mov edx, ecx
mov edi, dword [esp + 0x108]
mov ecx, dword [esp + 0x38]
mov esi, ebp
jmp 0x4a71ad
lea ebp, [esi + 1]
cmp edx, ebp
jne 0x4a705d
cmp esi, ecx
jae 0x4a74a6
lea ebp, [edi + 1]
mov esi, dword [eax + esi*4]
cmp ebx, ebp
jae 0x4a7003
mov dword [esp + 0x104], esi
lea eax, [0x4cc380]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x38]
mov dword [esp + 0xdc], ebp
mov ebp, eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
mov ebx, dword [0x5a34c0]
mov ebp, dword [esp + 0xdc]
lea edx, [ebp + edi*4]
test ebx, ebx
jne 0x4a702c
mov dword [ebp + edi*4], esi
mov edx, dword [esp + 0x58]
cmp edx, ecx
jmp 0x4a7043
mov edi, edx
mov edx, eax
mov eax, esi
call fcn.00459240
mov eax, dword [esp + 0x58]
cmp eax, ecx
mov eax, edx
mov edx, dword [esp + 0x58]
mov eax, edx
mov edx, ecx
mov edi, dword [esp + 0x108]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, ebp
jmp 0x4a71ad
mov dword [esp + 0x78], ebp
mov dword [esp + 0x68], esi
jmp 0x4a73ae
mov ebp, dword [esp + 0x68]
cmp ebp, ecx
jae 0x4a7491
mov ebx, dword [eax + ebp*4]
lea edx, [eax + ebp*4]
cmp esi, ecx
jae 0x4a748a
mov dword [esp + 0xf8], edx
mov dword [esp + 0x104], ebx
mov edx, dword [0x5a34c0]
mov ebx, dword [eax + esi*4]
lea esi, [eax + esi*4]
test edx, edx
jne 0x4a70b5
mov dword [eax + ebp*4], ebx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x104]
mov dword [eax + edx*4], ebx
jmp 0x4a70dc
mov edx, edi
mov edi, dword [esp + 0xf8]
mov eax, ebx
call fcn.00459240
mov edi, esi
mov eax, dword [esp + 0x104]
call fcn.00459240
mov eax, dword [esp + 0x108]
mov edi, edx
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x78]
jmp 0x4a7411
mov ecx, dword [eax + ebp*4]
mov dword [esp], ecx
call fcn.004a5e10
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x108]
mov edx, dword [ebx + edx*4]
mov ebp, dword [esp + 0x6c]
cmp ebp, ecx
jb 0x4a711a
mov esi, dword [esp + 0xdc]
jmp 0x4a716b
mov dword [esp + 0x104], edx
lea edx, [0x4cc380]
mov dword [esp], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x104]
mov esi, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x3c], ebp
mov edi, ebx
mov ebx, dword [0x5a34c0]
lea ebp, [esi + eax*4]
test ebx, ebx
jne 0x4a718d
mov dword [esi + eax*4], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x7c]
cmp eax, edx
jmp 0x4a71a9
mov eax, edx
mov edi, ebp
call fcn.00459240
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x7c]
cmp eax, ebx
mov edx, ebx
mov edi, dword [esp + 0x108]
mov ebx, dword [esp + 0x3c]
jge 0x4a7248
jae 0x4a747c
lea ebp, [ecx + 1]
mov edx, dword [edi + eax*4]
cmp ebx, ebp
jae 0x4a7211
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x104], edx
lea eax, [0x4cc380]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.004439c0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
mov ebx, dword [0x5a34c0]
lea ebp, [esi + ecx*4]
test ebx, ebx
jne 0x4a722b
mov dword [esi + ecx*4], edx
jmp 0x4a723c
mov ecx, edi
mov edi, ebp
mov ebx, eax
mov eax, edx
call fcn.00459240
mov eax, ebx
mov edi, ecx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebp, edx
lea edx, [eax + 1]
jmp 0x4a6eef
mov eax, ebp
xor ecx, ecx
xor edx, edx
jmp 0x4a725c
mov ecx, esi
cmp ecx, edi
jge 0x4a7362
lea esi, [ecx + 1]
cmp edi, esi
jle 0x4a72b4
cmp ecx, edi
jae 0x4a7390
mov dword [esp + 0xfc], ebp
mov ebp, dword [eax + ecx*4]
cmp byte [ebp], 2
jne 0x4a72a9
cmp edi, esi
jbe 0x4a7387
mov ebp, dword [eax + ecx*4 + 4]
cmp byte [ebp], 2
jne 0x4a729e
mov ebp, dword [esp + 0xfc]
jmp 0x4a725a
cmp ecx, edi
mov ebp, dword [esp + 0xfc]
jmp 0x4a72b6
cmp ecx, edi
mov ebp, dword [esp + 0xfc]
jmp 0x4a72b6
cmp ecx, edi
jae 0x4a737e
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], esi
lea esi, [edx + 1]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x104], edx
cmp ebx, esi
jae 0x4a7318
lea eax, [0x4cc380]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
call fcn.004439c0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x104]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x7c], esi
mov ecx, ebx
mov ebx, dword [0x5a34c0]
mov esi, dword [esp + 0x64]
lea edx, [ebp + esi*4]
test ebx, ebx
jne 0x4a733d
mov edx, dword [esp + 0x104]
mov dword [ebp + esi*4], edx
jmp 0x4a7353
mov ebx, edi
mov edi, edx
mov esi, eax
mov eax, dword [esp + 0x104]
call fcn.00459240
mov eax, esi
mov edi, ebx
mov esi, dword [esp + 0x60]
mov ebx, ecx
mov edx, dword [esp + 0x7c]
jmp 0x4a725a
mov dword [esp + 0x120], ebp
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], ebx
add esp, 0x10c
ret
mov eax, ecx
mov ecx, edi
call fcn.004592c0
mov eax, esi
mov ecx, edi
call fcn.004592c0
mov eax, ecx
mov ecx, edi
call fcn.004592c0
mov ebx, dword [esp + 0x74]
lea ebp, [ebx + 1]
mov ebx, dword [esp + 0x58]
mov ebx, dword [esp + 0x6c]
mov esi, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x40], esi
cmp ebp, edx
jge 0x4a706a
cmp esi, ecx
jae 0x4a749f
mov ebx, dword [eax + esi*4]
movzx edx, byte [ebx]
cmp ebp, ecx
jae 0x4a7498
mov dword [esp + 0x74], ebp
mov esi, dword [eax + ebp*4]
movzx ebp, byte [esi]
xchg ebp, eax
cmp al, dl
xchg ebp, eax
ja 0x4a73ea
jne 0x4a73f0
mov edx, dword [esi + 0x18]
cmp dword [ebx + 0x18], edx
jge 0x4a73f0
mov edx, dword [esp + 0x74]
jmp 0x4a7399
mov edx, dword [esp + 0x40]
jmp 0x4a7399
lea ebx, [eax + 1]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x58]
mov eax, ecx
mov ecx, esi
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x38]
cmp ebx, edx
jge 0x4a70e9
mov esi, dword [eax + ebp*4]
cmp ebx, ecx
jae 0x4a7483
mov dword [esp + 0x4c], ebx
mov ecx, dword [eax + ebx*4]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.004a9400
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x108]
mov edx, dword [ecx + eax*4]
test byte [edx], al
mov ebx, dword [0x5a34c0]
mov ebp, dword [esp + 0x110]
mov esi, dword [ebp + 0x10]
test ebx, ebx
jne 0x4a745f
mov dword [edx + 0x10], esi
mov dword [ebp + 0x10], edx
jmp 0x4a73f6
lea edi, [edx + 0x10]
mov ebx, eax
mov eax, esi
call fcn.00459240
lea edi, [ebp + 0x10]
mov eax, edx
call fcn.00459240
mov eax, ebx
jmp 0x4a73f6
mov ecx, edx
call fcn.004592c0
mov eax, ebx
call fcn.004592c0
mov eax, esi
call fcn.004592c0
mov eax, ebp
call fcn.004592c0
mov eax, ebp
call fcn.004592c0
mov eax, esi
call fcn.004592c0
mov eax, esi
call fcn.004592c0
mov eax, edx
call fcn.004592c0
lea edi, [edx + 1]
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x110]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov eax, ebx
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x78]
cmp edi, esi
jge 0x4a6ca3
cmp edi, ecx
jae 0x4a753a
mov dword [esp + 0x44], edi
mov ecx, dword [eax + edi*4]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x74]
cmp edi, ecx
setne dl
mov byte [esp + 8], dl
call fcn.004a7930
mov eax, dword [0x5a34c0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xdc]
lea edi, [ebx + edx*4]
test eax, eax
jne 0x4a7521
mov dword [ebx + edx*4], ecx
jmp 0x4a74b4
mov eax, ecx
call fcn.00459240
jmp 0x4a74b4
mov eax, edi
mov ecx, esi
call fcn.00459320
mov ecx, esi
call fcn.00459300
mov eax, edi
call fcn.004592c0
mov eax, edi
call fcn.004592c0
xor eax, eax
mov ecx, esi
call fcn.004592c0
mov eax, esi
call fcn.004592c0
lea edi, [edx + 1]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x110]
mov esi, dword [esp + 0x118]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x104]
cmp edi, edx
jge 0x4a6790
cmp esi, edi
jbe 0x4a75d5
mov dword [esp + 0x48], edi
mov ecx, dword [ebx + edi*4]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004a7700
mov eax, dword [0x5a34c0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x114]
lea edi, [ebx + edx*4]
test eax, eax
jne 0x4a75bc
mov dword [ebx + edx*4], ecx
jmp 0x4a7558
mov eax, ecx
call fcn.00459240
jmp 0x4a7558
mov ecx, edx
call fcn.00459320
mov ecx, edx
mov edx, edi
call fcn.00459300
mov eax, edi
mov ecx, esi
call fcn.004592c0
mov eax, edi
call fcn.004592c0
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xf4], edx
mov word [esp + 0x26], bp
mov ebp, dword [esp + 0xdc]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
jmp 0x4a6538
lea ebx, [ebp + 1]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x28]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x34], ebx
movzx ebx, word [esp + 0x22]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
cmp esi, ebp
jle 0x4a769c
mov ebx, dword [esp + 0x50]
cmp ebp, ebx
jge 0x4a76a0
cmp esi, ebp
jbe 0x4a76e2
mov ebx, dword [esp + 0xcc]
mov ebx, dword [ebx + ebp*4]
mov esi, dword [esp + 0xe0]
lea esi, [esi + ebp*4]
cmp dword [esi], ebx
je 0x4a7642
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
jmp 0x4a76a0
mov ebx, dword [esp + 0x50]
test ebp, ebp
jle 0x4a76c6
mov ebx, dword [esp + 0x2c]
cmp ebx, ebp
jb 0x4a76d9
mov esi, edi
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0xdc]
jmp 0x4a641e
movzx ebx, word [esp + 0x22]
movzx ebp, word [esp + 0x24]
mov esi, dword [esp + 0x30]
jmp 0x4a75e5
mov ecx, ebp
mov edx, ebx
call fcn.00459300
mov eax, ebp
mov ecx, esi
call fcn.004592c0
mov eax, esi
call fcn.004592c0
nop
call fcn.00457e00
jmp fcn.004a6380