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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x48
mov eax, dword [esp + 0x5c]
sub eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
sub eax, 1
mov dword [esp + 0x44], eax
je 0x6ca2c7fe
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x80]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x40], ecx
lea esi, [esi]
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
add eax, dword [esp + 0x70]
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
shr eax, 1
imul eax, dword [esp + 0x74]
add ecx, eax
add eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
add eax, edx
mov dword [esp + 0x3c], eax
mov ecx, eax
test ebx, ebx
je 0x6ca2c6d0
mov edi, dword [esp + 0x40]
mov dword [esp + 0x14], 0
lea eax, [edi*4 + 0x6ca94f20]
movzx edi, byte [edi*4 + 0x6ca94f20]
movsx esi, word [eax + 4]
mov dword [esp], edi
mov dword [esp + 0x24], esi
movsx esi, word [eax + 6]
mov dword [esp + 0x28], esi
movsx esi, word [eax + 8]
mov dword [esp + 0x2c], esi
movsx esi, word [eax + 0xa]
movsx eax, word [eax + 2]
mov dword [esp + 0x30], esi
mov dword [esp + 4], eax
lea esi, [esi]
nop
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
add edx, 6
add ecx, 6
mov eax, dword [esp + 0x18]
movzx ebx, byte [edi]
movzx eax, byte [eax]
add ebx, 0xffffff80
imul esi, ebx
add eax, 0xffffff80
imul ebx, dword [esp + 0x2c]
mov edi, esi
mov esi, dword [esp + 0x28]
imul esi, eax
imul eax, dword [esp + 0x30]
add esi, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
movzx ebx, byte [eax]
sub ebx, dword [esp]
imul ebx, dword [esp + 4]
lea ebp, [edi + ebx + 0x2000]
sar ebp, 6
movzx eax, byte [ebp + 0x6ca94ce0]
lea ebp, [esi + ebx + 0x2000]
sar ebp, 6
mov byte [edx - 6], al
movzx eax, byte [ebp + 0x6ca94ce0]
mov ebp, dword [esp + 8]
mov byte [edx - 5], al
mov eax, dword [esp + 0xc]
lea ebx, [ebp + ebx + 0x2000]
sar ebx, 6
movzx ebx, byte [ebx + 0x6ca94ce0]
mov byte [edx - 4], bl
movzx ebx, byte [eax + 1]
sub ebx, dword [esp]
imul ebx, dword [esp + 4]
lea ebp, [edi + ebx + 0x2000]
sar ebp, 6
movzx eax, byte [ebp + 0x6ca94ce0]
lea ebp, [esi + ebx + 0x2000]
sar ebp, 6
mov byte [edx - 3], al
movzx eax, byte [ebp + 0x6ca94ce0]
mov ebp, dword [esp + 8]
mov byte [edx - 2], al
lea ebx, [ebp + ebx + 0x2000]
sar ebx, 6
movzx ebx, byte [ebx + 0x6ca94ce0]
mov byte [edx - 1], bl
mov ebx, dword [esp + 0x10]
movzx ebx, byte [ebx]
sub ebx, dword [esp]
imul ebx, dword [esp + 4]
add dword [esp + 0xc], 2
add dword [esp + 0x18], 1
lea ebp, [edi + ebx + 0x2000]
sar ebp, 6
movzx eax, byte [ebp + 0x6ca94ce0]
lea ebp, [esi + ebx + 0x2000]
sar ebp, 6
mov byte [ecx - 6], al
movzx eax, byte [ebp + 0x6ca94ce0]
mov ebp, dword [esp + 8]
mov byte [ecx - 5], al
lea ebx, [ebp + ebx + 0x2000]
sar ebx, 6
movzx ebx, byte [ebx + 0x6ca94ce0]
mov byte [ecx - 4], bl
mov ebx, dword [esp + 0x10]
add dword [esp + 0x10], 2
movzx ebx, byte [ebx + 1]
sub ebx, dword [esp]
imul ebx, dword [esp + 4]
lea edi, [edi + ebx + 0x2000]
lea esi, [esi + ebx + 0x2000]
sar edi, 6
sar esi, 6
movzx eax, byte [edi + 0x6ca94ce0]
mov byte [ecx - 3], al
movzx eax, byte [esi + 0x6ca94ce0]
mov byte [ecx - 2], al
lea eax, [ebp + ebx + 0x2000]
sar eax, 6
movzx eax, byte [eax + 0x6ca94ce0]
mov byte [ecx - 1], al
add dword [esp + 0x1c], 1
add dword [esp + 0x14], 2
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x20]
jb 0x6ca2c4f8
je 0x6ca2c6d0
add dword [esp + 0x34], 2
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
add edx, dword [esp + 0x7c]
add eax, dword [esp + 0x70]
cmp dword [esp + 0x44], ecx
ja 0x6ca2c468
je 0x6ca2c7d3
add esp, 0x48
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
lea ebp, [eax - 0x80]
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
lea edi, [eax - 0x80]
mov eax, dword [esp + 0x40]
lea eax, [eax*4 + 0x6ca94f20]
movsx ebx, word [eax + 4]
movsx esi, word [eax + 6]
imul ebx, edi
imul esi, ebp
mov dword [esp], ebx
movsx ebx, word [eax + 8]
imul ebx, edi
lea edi, [esi + ebx]
movsx ebx, word [eax + 0xa]
mov esi, dword [esp + 0x40]
mov dword [esp + 4], edi
movsx eax, word [eax + 2]
mov edi, ebx
movzx ebx, byte [esi*4 + 0x6ca94f20]
imul edi, ebp
mov ebp, dword [esp + 0xc]
mov dword [esp + 8], eax
movzx esi, byte [ebp]
mov ebp, ebx
sub esi, ebx
mov ebx, esi
imul ebx, eax
mov eax, dword [esp]
lea esi, [eax + ebx + 0x2000]
sar esi, 6
movzx eax, byte [esi + 0x6ca94ce0]
mov esi, dword [esp + 4]
lea esi, [esi + ebx + 0x2000]
lea ebx, [edi + ebx + 0x2000]
mov byte [edx], al
sar esi, 6
sar ebx, 6
movzx eax, byte [esi + 0x6ca94ce0]
movzx ebx, byte [ebx + 0x6ca94ce0]
mov esi, dword [esp + 4]
mov byte [edx + 1], al
mov eax, dword [esp]
mov byte [edx + 2], bl
mov edx, dword [esp + 0x10]
movzx edx, byte [edx]
sub edx, ebp
imul edx, dword [esp + 8]
lea eax, [eax + edx + 0x2000]
sar eax, 6
movzx eax, byte [eax + 0x6ca94ce0]
mov byte [ecx], al
lea eax, [esi + edx + 0x2000]
sar eax, 6
movzx eax, byte [eax + 0x6ca94ce0]
mov byte [ecx + 1], al
lea eax, [edi + edx + 0x2000]
sar eax, 6
movzx eax, byte [eax + 0x6ca94ce0]
mov byte [ecx + 2], al
jmp 0x6ca2c695
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x70]
mov eax, ecx
imul edx, ecx
add dword [esp + 0x64], edx
shr eax, 1
imul eax, dword [esp + 0x74]
add dword [esp + 0x68], eax
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
imul eax, ecx
add dword [esp + 0x78], eax
mov eax, dword [esp + 0x80]
lea eax, [eax + eax*2]
shl eax, 2
movsx edx, word [eax + 0x6ca94f24]
movzx ebp, byte [eax + 0x6ca94f20]
mov dword [esp + 0x10], edx
movsx edx, word [eax + 0x6ca94f26]
mov dword [esp + 0x14], edx
movsx edx, word [eax + 0x6ca94f28]
mov dword [esp + 0x18], edx
movsx edx, word [eax + 0x6ca94f2a]
movsx eax, word [eax + 0x6ca94f22]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x6ca2c96f
xor esi, esi
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x78]
mov dword [esp], esi
mov esi, dword [esp + 0x64]
lea esi, [esi]
lea esi, [esi]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
add eax, 6
add esi, 2
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
movzx edx, byte [edx]
movzx ecx, byte [ecx]
add dword [esp + 0x68], 1
add edx, 0xffffff80
add ecx, 0xffffff80
imul ebp, ecx
imul ebx, edx
imul ecx, dword [esp + 0x18]
imul edx, dword [esp + 0x1c]
add ebx, ecx
movzx ecx, byte [esi - 2]
sub ecx, dword [esp + 8]
imul ecx, dword [esp + 0xc]
mov dword [esp + 4], edx
lea edi, [ebp + ecx + 0x2000]
sar edi, 6
movzx edx, byte [edi + 0x6ca94ce0]
lea edi, [ebx + ecx + 0x2000]
sar edi, 6
mov byte [eax - 6], dl
movzx edx, byte [edi + 0x6ca94ce0]
mov byte [eax - 5], dl
mov edx, dword [esp + 4]
lea ecx, [edx + ecx + 0x2000]
sar ecx, 6
movzx ecx, byte [ecx + 0x6ca94ce0]
mov byte [eax - 4], cl
movzx ecx, byte [esi - 1]
sub ecx, dword [esp + 8]
imul ecx, dword [esp + 0xc]
lea edi, [ebp + ecx + 0x2000]
lea ebx, [ebx + ecx + 0x2000]
sar edi, 6
sar ebx, 6
movzx edx, byte [edi + 0x6ca94ce0]
movzx ebx, byte [ebx + 0x6ca94ce0]
mov byte [eax - 3], dl
mov edx, dword [esp + 4]
mov byte [eax - 2], bl
lea edx, [edx + ecx + 0x2000]
sar edx, 6
movzx edx, byte [edx + 0x6ca94ce0]
mov byte [eax - 1], dl
add dword [esp + 0x6c], 1
add dword [esp], 2
mov edx, dword [esp]
cmp edx, dword [esp + 0x20]
jb 0x6ca2c870
mov dword [esp + 0x64], esi
mov ebp, dword [esp + 8]
mov dword [esp + 0x78], eax
jne 0x6ca2c6be
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x78]
movzx eax, byte [eax]
lea ebx, [eax - 0x80]
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax]
lea edx, [eax - 0x80]
mov eax, dword [esp + 0x64]
imul ecx, edx
movzx eax, byte [eax]
imul edx, dword [esp + 0x18]
sub eax, ebp
imul eax, dword [esp + 0xc]
lea ecx, [eax + ecx + 0x2000]
sar ecx, 6
movzx ecx, byte [ecx + 0x6ca94ce0]
mov byte [edi], cl
mov ecx, dword [esp + 0x14]
imul ecx, ebx
imul ebx, dword [esp + 0x1c]
add ecx, edx
lea edx, [eax + ecx + 0x2000]
lea eax, [eax + ebx + 0x2000]
sar edx, 6
sar eax, 6
movzx edx, byte [edx + 0x6ca94ce0]
movzx eax, byte [eax + 0x6ca94ce0]
mov byte [edi + 1], dl
mov byte [edi + 2], al
add esp, 0x48
pop ebx
pop esi
pop edi
pop ebp
ret