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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x6af45d
sub esp, 0xc8
mov ebx, dword [esp + 0xcc]
mov ebp, dword [ebx + 0x10]
mov esi, dword [esp + 0xd0]
sub esi, ebp
shl esi, 2
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0xd8]
sub edi, ebp
shl edi, 2
mov ebp, dword [ebx + 0x14]
mov eax, edi
mov edi, dword [esp + 0xd4]
sub edi, ebp
mov ecx, esi
mov esi, dword [esp + 0xdc]
sub esi, ebp
mov dword [esp + 0x28], esi
mov ebp, dword [esp + 0xe0]
mov edx, ebp
mov ebp, dword [ebp + 0x2c]
cmp ebp, 1
jg 0x6aead7
test ebp, ebp
jne 0x6aeaad
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x94]
jmp 0x6af262
cmp ebp, 1
jne 0x6aeb28
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x9c]
jmp 0x6af020
cmp ebp, 2
jne 0x6aeb01
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xa4]
jmp 0x6aedc0
cmp ebp, 3
jne 0x6aeb28
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xac]
jmp 0x6aeb66
mov byte [esp + 0xec], 0
add esp, 0xc8
ret
mov ecx, dword [esp + 0x2c]
inc ecx
mov ebx, dword [esp + 0x40]
inc ebx
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0xe4]
mov ebp, esi
mov esi, dword [esp + 0x28]
mov edi, ecx
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xcc]
cmp edi, esi
je 0x6aec1b
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xc4], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x6aed91
mov dword [esp + 0x2c], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xc4]
add ebp, edi
mov dword [esp + 0xb4], ebp
sub esi, ebx
mov dword [esp + 0x68], esi
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x90], ebx
mov edi, dword [esp + 0x40]
sub edi, ebx
imul edi, dword [edx + 0x24]
mov ebp, dword [edx + 0x30]
mov ebx, dword [esp + 0xe4]
sub ebx, ebp
mov dword [esp + 0x8c], ebx
lea ebp, [edi + ebx]
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x40]
shr edi, 0x1f
mov ebp, dword [esp + 0x40]
add edi, ebp
sar edi, 1
mov ebp, dword [esp + 0x90]
shr ebp, 0x1f
mov ebx, dword [esp + 0x90]
add ebx, ebp
sar ebx, 1
sub edi, ebx
imul edi, dword [edx + 0x28]
mov ebx, dword [esp + 0x8c]
add ebx, edi
mov ebp, dword [esp + 0x18]
mov edi, ecx
jmp 0x6aec7a
mov byte [esp + 0xec], 1
add esp, 0xc8
ret
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ecx, edi
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0xb4]
xchg edi, eax
mov byte [edx + ecx], al
xchg edi, eax
xchg ebp, eax
mov byte [edx + ecx + 1], al
xchg ebp, eax
mov byte [edx + ecx + 2], bl
mov byte [edx + ecx + 3], 0xff
mov ecx, dword [esp + 0x18]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x80]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0xe0]
mov edx, ecx
mov edi, dword [esp + 0x3c]
mov ecx, esi
mov esi, dword [esp + 0x68]
cmp ecx, eax
je 0x6aeb37
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp ebp, edi
jae 0x6aed88
mov dword [esp + 0x18], ebp
movzx esi, byte [ebp + esi]
mov edi, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
cmp ebx, edi
jae 0x6aed7f
movzx ebp, byte [ebx + ebp]
mov dword [esp + 0x88], ebp
mov edi, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
cmp ebx, edi
jae 0x6aed76
imul esi, esi, 0x10101
movzx ebp, byte [ebx + ebp]
imul edi, ebp, 0x166e9
lea edi, [esi + edi - 0xb37480]
test edi, 0xff000000
jne 0x6aece3
sar edi, 0x10
jmp 0x6aecec
sar edi, 0x1f
xchg edi, ebx
not ebx
xchg edi, ebx
mov dword [esp + 8], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x88]
imul edi, ebx, 0x581a
sub esi, edi
imul ebp, ebp, 0xb6d2
sub esi, ebp
lea ebp, [esi + 0x877600]
test ebp, 0xff000000
jne 0x6aed25
sar ebp, 0x10
jmp 0x6aed2e
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
imul ebx, ebx, 0x1c5a2
mov esi, dword [esp + 8]
lea ebx, [ebx + esi - 0xe2d100]
test ebx, 0xff000000
jne 0x6aed4c
sar ebx, 0x10
jmp 0x6aed51
sar ebx, 0x1f
not ebx
lea esi, [ecx + 4]
mov edi, dword [esp + 0x68]
cmp edi, esi
jb 0x6aed6d
cmp ecx, esi
jbe 0x6aec2a
mov eax, ecx
mov ecx, esi
call fcn.004644f0
mov ecx, esi
mov edx, edi
call fcn.004644e0
mov eax, ebx
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, edi
call fcn.00464430
mov eax, ebp
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, esi
call fcn.00464490
mov ecx, dword [esp + 0x30]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x44]
inc ecx
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x3c]
cmp edi, esi
je 0x6aec1b
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xc4], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x6aeff1
mov dword [esp + 0x30], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xc4]
add ebp, edi
mov dword [esp + 0xb8], ebp
sub esi, ebx
mov dword [esp + 0x6c], esi
mov ebx, dword [edx + 0x34]
mov dword [esp + 0x90], ebx
mov edi, dword [esp + 0x44]
sub edi, ebx
imul edi, dword [edx + 0x24]
mov ebp, dword [edx + 0x30]
mov dword [esp + 0x8c], ebp
mov ebx, dword [esp + 0xe4]
sub ebx, ebp
add ebx, edi
mov dword [esp + 0x1c], ebx
mov edi, dword [esp + 0x44]
shr edi, 0x1f
mov ebx, dword [esp + 0x44]
add edi, ebx
sar edi, 1
mov ebx, dword [esp + 0x90]
shr ebx, 0x1f
mov ebp, dword [esp + 0x90]
add ebx, ebp
sar ebx, 1
sub edi, ebx
imul edi, dword [edx + 0x28]
mov ebx, dword [esp + 0x8c]
mov ebp, ebx
shr ebx, 0x1f
add ebx, ebp
sar ebx, 1
sub edi, ebx
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xe4]
jmp 0x6aeed1
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xb8]
mov byte [edx + edi], cl
mov byte [edx + edi + 1], bl
xchg ebp, eax
mov byte [edx + edi + 2], al
xchg ebp, eax
mov byte [edx + edi + 3], 0xff
mov ecx, dword [esp + 0x50]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0xe0]
mov edi, dword [esp + 0x78]
mov edx, ecx
mov ecx, esi
mov esi, dword [esp + 0x6c]
cmp ecx, eax
je 0x6aed9a
mov dword [esp + 0x50], ebp
shr ebp, 0x1f
mov esi, dword [esp + 0x50]
add ebp, esi
sar ebp, 1
add ebp, edi
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp ebx, edi
jae 0x6aefe8
mov dword [esp + 0x1c], ebx
movzx esi, byte [esi + ebx]
mov edi, dword [edx + 0x10]
mov ebx, dword [edx + 0xc]
cmp edi, ebp
jbe 0x6aefdf
movzx ebx, byte [ebx + ebp]
mov dword [esp + 0x88], ebx
mov edi, dword [edx + 0x1c]
mov ebx, dword [edx + 0x18]
cmp edi, ebp
jbe 0x6aefd6
imul esi, esi, 0x10101
movzx ebx, byte [ebx + ebp]
imul ebp, ebx, 0x166e9
lea ebp, [ebp + esi - 0xb37480]
test ebp, 0xff000000
jne 0x6aef4a
sar ebp, 0x10
jmp 0x6aef53
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x5c], ebp
mov edi, dword [esp + 0x88]
imul ebp, edi, 0x581a
sub esi, ebp
imul ebx, ebx, 0xb6d2
sub esi, ebx
lea ebx, [esi + 0x877600]
test ebx, 0xff000000
jne 0x6aef85
sar ebx, 0x10
jmp 0x6aef8a
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov esi, dword [esp + 0xc]
lea ebp, [ebp + esi - 0xe2d100]
test ebp, 0xff000000
jne 0x6aefa8
sar ebp, 0x10
jmp 0x6aefb1
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea esi, [ecx + 4]
mov edi, dword [esp + 0x6c]
cmp edi, esi
jb 0x6aefcd
cmp ecx, esi
jbe 0x6aee86
mov eax, ecx
mov ecx, esi
call fcn.004644f0
mov ecx, esi
mov edx, edi
call fcn.004644e0
mov eax, ebp
mov ecx, edi
call fcn.00464430
mov eax, ebp
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, esi
call fcn.00464490
mov ecx, dword [esp + 0x34]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x48]
inc ecx
mov ebx, dword [esp + 0xcc]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x3c]
cmp edi, esi
je 0x6aec1b
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xc4], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x6af22a
mov dword [esp + 0x34], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xc4]
add ebp, edi
mov dword [esp + 0xbc], ebp
sub esi, ebx
mov dword [esp + 0x70], esi
mov ebx, dword [edx + 0x24]
mov edi, dword [edx + 0x34]
mov ebp, dword [esp + 0x48]
sub ebp, edi
mov dword [esp + 0x90], ebp
imul ebx, ebp
mov edi, dword [edx + 0x30]
mov ebp, dword [esp + 0xe4]
sub ebp, edi
add ebx, ebp
mov dword [esp + 0x20], ebx
mov ebp, dword [edx + 0x28]
mov ebx, dword [esp + 0x90]
imul ebx, ebp
mov ebp, edi
shr edi, 0x1f
add ebp, edi
sar ebp, 1
sub ebx, ebp
mov dword [esp + 0x7c], ebx
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0xe4]
jmp 0x6af108
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xbc]
mov byte [edx + edi], cl
mov byte [edx + edi + 1], bl
xchg ebp, eax
mov byte [edx + edi + 2], al
xchg ebp, eax
mov byte [edx + edi + 3], 0xff
mov ecx, dword [esp + 0x54]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x20]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x7c]
mov edx, ecx
mov ecx, esi
mov esi, dword [esp + 0x70]
cmp ecx, eax
je 0x6aeffa
mov dword [esp + 0x54], edi
shr edi, 0x1f
mov esi, dword [esp + 0x54]
add edi, esi
sar edi, 1
add edi, ebx
mov ebx, dword [edx + 4]
mov esi, dword [edx]
cmp ebp, ebx
jae 0x6af221
mov dword [esp + 0x20], ebp
movzx ebx, byte [esi + ebp]
mov esi, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
cmp esi, edi
jbe 0x6af218
movzx ebp, byte [ebp + edi]
mov dword [esp + 0x88], ebp
mov esi, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
cmp esi, edi
jbe 0x6af20f
imul ebx, ebx, 0x10101
movzx ebp, byte [ebp + edi]
imul esi, ebp, 0x166e9
lea esi, [esi + ebx - 0xb37480]
test esi, 0xff000000
jne 0x6af183
sar esi, 0x10
jmp 0x6af18c
sar esi, 0x1f
xchg esi, ebx
not ebx
xchg esi, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x88]
imul esi, edi, 0x581a
sub ebx, esi
imul ebp, ebp, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x6af1be
sar ebx, 0x10
jmp 0x6af1c3
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov esi, dword [esp + 0x10]
lea ebp, [ebp + esi - 0xe2d100]
test ebp, 0xff000000
jne 0x6af1e1
sar ebp, 0x10
jmp 0x6af1ea
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea esi, [ecx + 4]
mov edi, dword [esp + 0x70]
cmp edi, esi
jb 0x6af206
cmp ecx, esi
jbe 0x6af0bd
mov eax, ecx
mov ecx, esi
call fcn.004644f0
mov ecx, esi
mov edx, edi
call fcn.004644e0
mov eax, edi
mov ecx, esi
call fcn.00464430
mov eax, edi
mov ecx, esi
call fcn.00464430
mov eax, ebp
mov ecx, ebx
call fcn.00464430
mov eax, ebx
mov ecx, esi
call fcn.00464490
mov ecx, dword [esp + 0x38]
inc ecx
mov ebx, dword [esp + 0x4c]
inc ebx
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0xe4]
mov ebp, esi
mov esi, dword [esp + 0x28]
mov edi, ecx
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xcc]
cmp edi, esi
je 0x6aec1b
mov esi, dword [ebx + 4]
mov ebp, dword [ebx]
mov dword [esp + 0xc4], ebp
mov ebp, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
imul ebx, edi
cmp esi, ebx
jb 0x6af453
mov dword [esp + 0x38], edi
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xc4]
add ebp, edi
mov dword [esp + 0xc0], ebp
sub esi, ebx
mov dword [esp + 0x74], esi
mov ebx, dword [edx + 0x24]
mov edi, dword [edx + 0x34]
mov ebp, dword [esp + 0x4c]
sub ebp, edi
mov dword [esp + 0x90], ebp
imul ebx, ebp
mov edi, dword [edx + 0x30]
mov ebp, dword [esp + 0xe4]
sub ebp, edi
add ebx, ebp
mov dword [esp + 0x24], ebx
mov edi, dword [edx + 0x28]
mov ebx, dword [esp + 0x90]
imul ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0x24]
mov edi, ecx
jmp 0x6af33b
sub edi, ecx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xc0]
mov byte [edx + edi], cl
xchg ebp, eax
mov byte [edx + edi + 1], al
xchg ebp, eax
mov byte [edx + edi + 2], bl
mov byte [edx + edi + 3], 0xff
mov ecx, dword [esp + 0x24]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x84]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0xe0]
mov edx, ecx
mov edi, dword [esp + 0x3c]
mov ecx, esi
mov esi, dword [esp + 0x74]
cmp ecx, eax
je 0x6af233
mov edi, dword [edx + 4]
mov esi, dword [edx]
cmp ebp, edi
jae 0x6af44a
mov dword [esp + 0x24], ebp
movzx esi, byte [esi + ebp]
mov edi, dword [edx + 0x10]
mov ebp, dword [edx + 0xc]
cmp ebx, edi
jae 0x6af441
movzx ebp, byte [ebp + ebx]
mov dword [esp + 0x88], ebp
mov edi, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
cmp ebx, edi
jae 0x6af438
imul esi, esi, 0x10101
movzx ebp, byte [ebp + ebx]
imul edi, ebp, 0x166e9
lea edi, [edi + esi - 0xb37480]
test edi, 0xff000000
jne 0x6af3a5
sar edi, 0x10
jmp 0x6af3ae
sar edi, 0x1f
xchg edi, ebx
not ebx
xchg edi, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x88]
imul edi, ebx, 0x581a
sub esi, edi
imul ebp, ebp, 0xb6d2
sub esi, ebp
lea ebp, [esi + 0x877600]
test ebp, 0xff000000
jne 0x6af3e7
sar ebp, 0x10
jmp 0x6af3f0
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
imul ebx, ebx, 0x1c5a2
mov esi, dword [esp + 0x14]
lea ebx, [ebx + esi - 0xe2d100]
test ebx, 0xff000000
jne 0x6af40e
sar ebx, 0x10
jmp 0x6af413
sar ebx, 0x1f
not ebx
lea esi, [ecx + 4]
mov edi, dword [esp + 0x74]
cmp edi, esi
jb 0x6af42f
cmp ecx, esi
jbe 0x6af2ed
mov eax, ecx
mov ecx, esi
call fcn.004644f0
mov ecx, esi
mov edx, edi
call fcn.004644e0
mov eax, ebx
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, edi
call fcn.00464430
mov eax, ebp
mov ecx, edi
call fcn.00464430
mov eax, ebx
mov ecx, esi
call fcn.00464490
nop
call fcn.00462fa0
jmp fcn.006aea10