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

Disassembly:
mov ecx, dword [0x6cb24420]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x6c8f45f6
sub esp, 0xc4
mov ebx, dword [esp + 0xc8]
mov ebp, dword [ebx + 0x10]
mov esi, dword [esp + 0xcc]
sub esi, ebp
mov edi, dword [esp + 0xd4]
sub edi, ebp
mov ebp, dword [ebx + 0x14]
mov eax, ebx
mov ebx, dword [esp + 0xdc]
mov ecx, dword [ebx + 0x2c]
shl esi, 2
mov dword [esp + 0x40], esi
shl edi, 2
mov dword [esp + 0x3c], edi
mov edx, edi
mov edi, dword [esp + 0xd0]
sub edi, ebp
mov esi, dword [esp + 0xd8]
sub esi, ebp
mov dword [esp + 0x28], esi
cmp ecx, 1
jg 0x6c8f3c89
test ecx, ecx
jne 0x6c8f3c61
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
jmp 0x6c8f442d
cmp ecx, 1
jne 0x6c8f3ce2
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
jmp 0x6c8f41ed
cmp ecx, 2
jne 0x6c8f3cb7
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x8c]
jmp 0x6c8f3f70
cmp ecx, 3
jne 0x6c8f3ce2
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x94]
jmp 0x6c8f3d29
mov byte [esp + 0xe8], 0
add esp, 0xc4
ret
mov eax, dword [esp + 0x2c]
inc eax
mov edx, dword [esp + 0x4c]
inc edx
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0xdc]
mov edi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x3c]
cmp edi, esi
je 0x6c8f3dd7
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x6c8f3f28
mov dword [esp + 0x2c], edi
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0xa4], ecx
mov edi, dword [esp + 0x4c]
sub edi, ecx
imul edi, dword [ebx + 0x24]
mov dword [esp + 0xa0], edi
mov edi, dword [ebx + 0x30]
sub ebp, edi
mov dword [esp + 0x9c], ebp
mov edi, dword [esp + 0x4c]
shr edi, 0x1f
mov ebp, dword [esp + 0x4c]
add edi, ebp
sar edi, 1
shr ecx, 0x1f
mov ebp, dword [esp + 0xa4]
add ebp, ecx
sar ebp, 1
sub edi, ebp
imul edi, dword [ebx + 0x28]
mov ebp, dword [esp + 0xc0]
add ebp, eax
mov dword [esp + 0xb8], ebp
sub esi, edx
mov eax, ebp
mov ebp, dword [esp + 0x9c]
mov ecx, ebx
mov ebx, dword [esp + 0xa0]
add ebx, ebp
add ebp, edi
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
jmp 0x6c8f3e2d
mov byte [esp + 0xe8], 1
add esp, 0xc4
ret
mov eax, esi
sub eax, edx
neg eax
sar eax, 0x1f
and edx, eax
mov eax, dword [esp + 0xb8]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], bl
xchg ebp, ebx
mov byte [eax + edx + 2], bl
xchg ebp, ebx
mov byte [eax + edx + 3], 0xff
mov ecx, dword [esp + 0x18]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x74]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov ecx, edx
mov edx, edi
mov edi, dword [esp + 0x3c]
cmp edx, edi
je 0x6c8f3cf1
mov edi, dword [ecx + 4]
cmp ebx, edi
jae 0x6c8f3f1f
mov edi, dword [ecx]
mov eax, dword [ecx + 0x10]
movzx edi, byte [ebx + edi]
cmp ebp, eax
jae 0x6c8f3f16
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x1c]
movzx eax, byte [ebp + eax]
cmp ebp, ebx
jae 0x6c8f3f0d
imul ebx, edi, 0x10101
mov edi, dword [ecx + 0x18]
movzx edi, byte [ebp + edi]
imul ecx, edi, 0x166e9
lea ecx, [ebx + ecx - 0xb37480]
test ecx, 0xff000000
jne 0x6c8f3e90
sar ecx, 0x10
jmp 0x6c8f3e95
sar ecx, 0x1f
not ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x74], ebp
imul ebp, eax, 0x581a
sub ebx, ebp
imul ebp, edi, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x6c8f3ec0
sar ebx, 0x10
jmp 0x6c8f3ec5
sar ebx, 0x1f
not ebx
imul ebp, eax, 0x1c5a2
mov edi, dword [esp + 8]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x6c8f3ee3
sar ebp, 0x10
jmp 0x6c8f3eec
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [edx + 4]
cmp esi, edi
jb 0x6c8f3f04
cmp edx, edi
jbe 0x6c8f3de6
mov eax, edx
mov ecx, edi
call fcn.6c82c190
mov ecx, edi
mov edx, esi
call fcn.6c82c180
mov eax, ebp
mov ecx, ebx
call fcn.6c82c0e0
mov ecx, eax
mov eax, ebp
call fcn.6c82c0e0
mov eax, ebx
mov ecx, edi
call fcn.6c82c0e0
mov eax, edx
mov ecx, esi
call fcn.6c82c140
mov eax, dword [esp + 0x30]
lea edi, [eax + 1]
mov eax, dword [esp + 0x50]
inc eax
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x40]
mov ecx, esi
mov edx, ebp
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc8]
cmp edi, esi
je 0x6c8f3dd7
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x6c8f41a5
mov dword [esp + 0x30], edi
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov edi, dword [esp + 0x50]
shr edi, 0x1f
mov ebp, dword [esp + 0x50]
add edi, ebp
sar edi, 1
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0xa4], ecx
sub ebp, ecx
imul ebp, dword [ebx + 0x24]
mov dword [esp + 0xa0], ebp
shr ecx, 0x1f
mov ebp, dword [esp + 0xa4]
add ebp, ecx
sar ebp, 1
sub edi, ebp
imul edi, dword [ebx + 0x28]
mov dword [esp + 0xa4], edi
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x9c], ebp
mov ecx, ebx
mov ebx, dword [esp + 0xe0]
sub ebx, ebp
shr ebp, 0x1f
mov edi, dword [esp + 0x9c]
add ebp, edi
sar ebp, 1
mov edi, dword [esp + 0xc0]
add edi, eax
sub esi, edx
mov dword [esp + 0x64], esi
mov eax, edi
mov edi, dword [esp + 0xa0]
add ebx, edi
mov edi, dword [esp + 0xa4]
sub edi, ebp
mov dword [esp + 0x6c], edi
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
jmp 0x6c8f4099
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
mov byte [eax + edi], dl
mov byte [eax + edi + 1], bl
xchg ebp, ebx
mov byte [eax + edi + 2], bl
xchg ebp, ebx
mov byte [eax + edi + 3], 0xff
mov edx, dword [esp + 0x5c]
inc edx
mov ebx, dword [esp + 0x1c]
inc ebx
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xdc]
mov esi, dword [esp + 0x44]
cmp esi, ebp
je 0x6c8f3f31
mov dword [esp + 0x5c], edx
shr edx, 0x1f
mov ebp, dword [esp + 0x5c]
add edx, ebp
sar edx, 1
mov ebp, dword [ecx + 4]
add edx, edi
cmp ebx, ebp
jae 0x6c8f419c
mov ebp, dword [ecx]
mov edi, dword [ecx + 0x10]
movzx ebp, byte [ebp + ebx]
cmp edi, edx
jbe 0x6c8f4193
mov dword [esp + 0x1c], ebx
mov edi, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x1c]
movzx edi, byte [edi + edx]
cmp ebx, edx
jbe 0x6c8f418a
imul ebx, ebp, 0x10101
mov ebp, dword [ecx + 0x18]
movzx ebp, byte [ebp + edx]
imul edx, ebp, 0x166e9
lea edx, [edx + ebx - 0xb37480]
test edx, 0xff000000
jne 0x6c8f4111
sar edx, 0x10
jmp 0x6c8f4116
sar edx, 0x1f
not edx
mov dword [esp + 0xc], ebx
imul ecx, edi, 0x581a
sub ebx, ecx
imul ebp, ebp, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x6c8f413d
sar ebx, 0x10
jmp 0x6c8f4142
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov edi, dword [esp + 0xc]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x6c8f4160
sar ebp, 0x10
jmp 0x6c8f4169
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea ecx, [esi + 4]
mov edi, dword [esp + 0x64]
cmp edi, ecx
jb 0x6c8f4183
cmp esi, ecx
jbe 0x6c8f4050
mov eax, esi
call fcn.6c82c190
mov edx, edi
call fcn.6c82c180
mov eax, edx
mov ecx, ebx
call fcn.6c82c0e0
mov eax, edx
mov ecx, edi
call fcn.6c82c0e0
mov eax, ebx
mov ecx, ebp
call fcn.6c82c0e0
mov eax, edx
mov ecx, esi
call fcn.6c82c140
mov eax, dword [esp + 0x34]
lea edi, [eax + 1]
mov eax, dword [esp + 0x54]
inc eax
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x40]
mov ecx, esi
mov edx, ebp
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc8]
cmp edi, esi
je 0x6c8f3dd7
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x6c8f43ee
mov dword [esp + 0x34], edi
mov dword [esp + 0xa4], edx
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x30]
sub ebp, edx
mov dword [esp + 0xa0], ebp
mov ebp, dword [ebx + 0x34]
mov edi, dword [esp + 0x54]
sub edi, ebp
imul ecx, edi
mov ebp, dword [ebx + 0x28]
imul edi, ebp
mov ebp, edx
shr edx, 0x1f
add ebp, edx
sar ebp, 1
mov edx, ebx
mov ebx, dword [esp + 0xc0]
add ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0xa4]
sub esi, ebx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0xa0]
add ebx, ecx
sub edi, ebp
mov dword [esp + 0x70], edi
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb0]
jmp 0x6c8f42e0
sub edx, esi
neg edx
sar edx, 0x1f
and edx, esi
mov byte [eax + edx], cl
mov byte [eax + edx + 1], bl
xchg ebp, ebx
mov byte [eax + edx + 2], bl
xchg ebp, ebx
mov byte [eax + edx + 3], 0xff
mov ecx, dword [esp + 0x60]
inc ecx
mov edx, dword [esp + 0x20]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
cmp esi, ebp
je 0x6c8f41ae
mov dword [esp + 0x60], ecx
shr ecx, 0x1f
mov ebp, dword [esp + 0x60]
add ecx, ebp
sar ecx, 1
mov ebp, dword [edx + 4]
add ecx, edi
cmp ebx, ebp
jae 0x6c8f43e5
mov ebp, dword [edx]
mov edi, dword [edx + 0x10]
movzx ebp, byte [ebp + ebx]
cmp edi, ecx
jbe 0x6c8f43dc
mov dword [esp + 0x20], ebx
mov edi, dword [edx + 0xc]
mov ebx, dword [edx + 0x1c]
movzx edi, byte [edi + ecx]
cmp ebx, ecx
jbe 0x6c8f43d3
imul ebx, ebp, 0x10101
mov ebp, dword [edx + 0x18]
movzx ebp, byte [ebp + ecx]
imul ecx, ebp, 0x166e9
lea ecx, [ecx + ebx - 0xb37480]
test ecx, 0xff000000
jne 0x6c8f4358
sar ecx, 0x10
jmp 0x6c8f435d
sar ecx, 0x1f
not ecx
mov dword [esp + 0x10], ebx
imul edx, edi, 0x581a
sub ebx, edx
imul ebp, ebp, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x6c8f4384
sar ebx, 0x10
jmp 0x6c8f4389
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov edi, dword [esp + 0x10]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x6c8f43a7
sar ebp, 0x10
jmp 0x6c8f43b0
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [esi + 4]
mov edx, dword [esp + 0x68]
cmp edx, edi
jb 0x6c8f43cc
cmp esi, edi
jbe 0x6c8f429c
mov eax, esi
mov ecx, edi
call fcn.6c82c190
mov ecx, edi
call fcn.6c82c180
mov eax, ecx
mov ecx, ebx
call fcn.6c82c0e0
mov eax, ecx
mov ecx, edi
call fcn.6c82c0e0
mov eax, ebx
mov ecx, ebp
call fcn.6c82c0e0
mov eax, edx
mov ecx, esi
call fcn.6c82c140
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 0x58]
inc ecx
mov ebp, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x28]
mov edx, edi
mov ebx, dword [esp + 0xdc]
mov edi, eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x40]
cmp edi, esi
je 0x6c8f3dd7
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x6c8f45ec
mov dword [esp + 0x38], edi
mov dword [esp + 0xa4], edx
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x34]
mov edi, dword [esp + 0x58]
sub edi, edx
imul ecx, edi
mov edx, dword [ebx + 0x28]
imul edi, edx
mov edx, dword [ebx + 0x30]
sub ebp, edx
mov edx, ebx
mov ebx, dword [esp + 0xc0]
add ebx, eax
mov dword [esp + 0xbc], ebx
mov eax, ebx
mov ebx, dword [esp + 0xa4]
sub esi, ebx
lea ebx, [ecx + ebp]
add ebp, edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
jmp 0x6c8f44f3
mov eax, esi
sub eax, ecx
neg eax
sar eax, 0x1f
and eax, ecx
mov ecx, dword [esp + 0xbc]
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], bl
xchg ebp, ebx
mov byte [ecx + eax + 2], bl
xchg ebp, ebx
mov byte [ecx + eax + 3], 0xff
mov eax, dword [esp + 0x24]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x78]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x3c]
cmp ecx, edi
je 0x6c8f43f7
mov edi, dword [edx + 4]
cmp ebx, edi
jae 0x6c8f45e3
mov edi, dword [edx]
mov eax, dword [edx + 0x10]
movzx edi, byte [edi + ebx]
cmp ebp, eax
jae 0x6c8f45da
mov dword [esp + 0x24], ebx
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0x1c]
movzx eax, byte [eax + ebp]
cmp ebp, ebx
jae 0x6c8f45d1
imul ebx, edi, 0x10101
mov edi, dword [edx + 0x18]
movzx edi, byte [edi + ebp]
imul edx, edi, 0x166e9
lea edx, [edx + ebx - 0xb37480]
test edx, 0xff000000
jne 0x6c8f4554
sar edx, 0x10
jmp 0x6c8f4559
sar edx, 0x1f
not edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x78], ebp
imul ebp, eax, 0x581a
sub ebx, ebp
imul ebp, edi, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x6c8f4584
sar ebx, 0x10
jmp 0x6c8f4589
sar ebx, 0x1f
not ebx
imul ebp, eax, 0x1c5a2
mov edi, dword [esp + 0x14]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x6c8f45a7
sar ebp, 0x10
jmp 0x6c8f45b0
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [ecx + 4]
cmp esi, edi
jb 0x6c8f45c8
cmp ecx, edi
jbe 0x6c8f44ac
mov eax, ecx
mov ecx, edi
call fcn.6c82c190
mov ecx, edi
mov edx, esi
call fcn.6c82c180
mov eax, ebp
mov ecx, ebx
call fcn.6c82c0e0
mov ecx, eax
mov eax, ebp
call fcn.6c82c0e0
mov eax, ebx
mov ecx, edi
call fcn.6c82c0e0
mov eax, edx
mov ecx, esi
call fcn.6c82c140
nop
call fcn.6c82ac40
jmp fcn.6c8f3bc0