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

Disassembly:
push ebp
push edi
push esi
mov esi, edx
push ebx
mov ebx, ecx
sub esp, 0x5c
dec ebx
lea ecx, [esp + 0x4c]
sub esi, 8
lea edx, [esp + 0x48]
mov dword [esp + 0x10], eax
call fcn.6c564baf
mov eax, dword [esp + 0x48]
mov cl, byte [esp + 0x78]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], 0
sar eax, cl
imul edx, eax
mov dword [esp + 0x48], eax
shl eax, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x4c], edx
shl edx, 2
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], esi
jmp 0x6c564eaf
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 8]
inc dword [esp + 8]
mov eax, dword [ebx + 0x28]
mov ebx, dword [esp + 0x28]
imul ebx, dword [esi + 0x18]
mov cl, byte [esp + 0x78]
mov esi, dword [esp + 8]
sar edx, cl
sar esi, cl
add edx, ebx
add ebx, esi
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x84]
mov esi, dword [ecx + 0x200]
mov ecx, dword [ecx + 0x1f4]
mov edi, dword [esi + edx*4]
mov dl, byte [eax + edx]
mov al, byte [eax + ebx]
mov esi, dword [esi + ebx*4]
and edx, 0xe
and eax, 0xe
mov bl, al
or bl, dl
jne 0x6c564cef
mov esi, dword [esp + 0x20]
add dword [esp + 0x18], esi
jmp 0x6c564e8d
or esi, edi
and esi, 7
jne 0x6c564d2f
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x20]
add esi, ecx
add ecx, ebx
movsx ebx, word [esi]
movsx edi, word [ecx]
movsx esi, word [esi + 2]
movsx ecx, word [ecx + 2]
sub ebx, edi
mov edi, ebx
add ecx, esi
mov esi, ecx
sar edi, 0x1f
sar esi, 0x1f
xor ebx, edi
xor ecx, esi
sub ebx, edi
sub ecx, esi
add ebx, ecx
dec ebx
jle 0x6c564ce2
movzx eax, al
movzx edx, dl
mov ebx, dword [esp + 0x30]
test eax, eax
sete byte [esp + 0xf]
test edx, edx
mov dword [esp + 0x14], eax
sete al
or byte [esp + 0xf], al
mov eax, dword [esp + 8]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov dword [esp + 4], 8
lea ecx, [ebx + eax*8]
movzx ebp, byte [ecx + 8]
movzx esi, byte [ecx + 7]
mov ebx, ebp
sub ebx, esi
mov edi, esi
mov eax, ebx
cdq
mov eax, edx
xor eax, ebx
sub eax, edx
movzx edx, byte [ecx + 6]
mov dword [esp], eax
sub edi, edx
mov eax, edi
cdq
mov eax, dword [esp]
xor edi, edx
sub edi, edx
movzx edx, byte [ecx + 9]
sub edx, ebp
mov ebp, edx
sar ebp, 0x1f
xor edx, ebp
sub edx, ebp
lea edx, [edi + edx + 1]
sar edx, 1
sub eax, edx
mov edx, 0
cmovs eax, edx
mov edx, eax
neg edx
test ebx, ebx
cmovs eax, edx
test eax, eax
je 0x6c564e7a
cmp byte [esp + 0xf], 0
je 0x6c564dd7
shl eax, 4
mov ebx, 9
cdq
idiv ebx
cmp dword [esp + 0x1c], 0
je 0x6c564e22
imul edx, eax, 7
movzx ebx, byte [ecx + 6]
sar edx, 4
mov dl, byte [esi + edx + 0x6c580c60]
mov byte [ecx + 7], dl
lea edx, [eax + eax*4]
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
movzx ebx, byte [ecx + 5]
mov byte [ecx + 6], dl
lea edx, [eax + eax*2]
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
movzx ebx, byte [ecx + 4]
mov byte [ecx + 5], dl
mov edx, eax
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
mov byte [ecx + 4], dl
cmp dword [esp + 0x14], 0
je 0x6c564e7a
imul ebx, eax, 7
movzx edx, byte [ecx + 8]
sar ebx, 4
sub edx, ebx
mov dl, byte [edx + 0x6c580c60]
lea ebx, [eax + eax*4]
sar ebx, 4
mov byte [ecx + 8], dl
movzx edx, byte [ecx + 9]
sub edx, ebx
mov dl, byte [edx + 0x6c580c60]
lea ebx, [eax + eax*2]
sar ebx, 4
sar eax, 4
mov byte [ecx + 9], dl
movzx edx, byte [ecx + 0xa]
sub edx, ebx
mov dl, byte [edx + 0x6c580c60]
mov byte [ecx + 0xa], dl
movzx edx, byte [ecx + 0xb]
sub edx, eax
mov al, byte [edx + 0x6c580c60]
mov byte [ecx + 0xb], al
add ecx, dword [esp + 0x74]
dec dword [esp + 4]
jne 0x6c564d64
jmp 0x6c564ce2
mov esi, dword [esp + 8]
cmp dword [esp + 0x24], esi
jg 0x6c564c89
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x74]
inc dword [esp + 0x34]
add dword [esp + 0x38], ebx
add dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x34], ebx
jge 0x6c564ed9
mov ebx, dword [esp + 0x34]
mov cl, byte [esp + 0x78]
mov esi, dword [esp + 0x38]
mov dword [esp + 8], 0
sar ebx, cl
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], esi
jmp 0x6c564e8d
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret