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

Disassembly:
push ebp
push edi
push esi
mov esi, edx
push ebx
sub esp, 0x8c
mov dword [esp + 0x4c], ecx
lea edx, [esp + 0x78]
mov ebx, dword [esp + 0xa4]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x28], eax
call fcn.6c564baf
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0xa8]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
sar eax, cl
imul edx, eax
imul ecx, ebx, 7
mov dword [esp + 0x78], eax
shl eax, 2
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x7c], edx
lea edx, [ebx*8]
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + ebx*8]
mov dword [esp + 0x10], edx
lea edx, [ebx + ebx*4]
mov dword [esp + 0x14], ecx
lea ecx, [ebx*4]
mov dword [esp + 0x34], edx
imul edx, ebx, 0xa
mov dword [esp + 0x38], ecx
imul ecx, ebx, 0xb
imul ebx, ebx, 6
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
add esi, ebx
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x58], esi
dec ebx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x68]
shl ebx, 2
mov dword [esp + 0x64], ebx
jmp 0x6c56520d
mov edx, dword [esp + 0x28]
mov cl, byte [esp + 0xa8]
mov ebx, dword [esp + 0x18]
mov eax, dword [edx + 0x28]
mov edi, dword [edx + 0x18]
mov edx, dword [esp + 0x50]
sar ebx, cl
imul edx, edi
imul edi, dword [esp + 0x48]
add edx, ebx
add edi, ebx
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0x84]
mov ebx, dword [ecx + 0x200]
mov ecx, dword [ecx + 0x1f4]
mov esi, dword [ebx + edx*4]
mov dl, byte [eax + edx]
mov al, byte [eax + edi]
mov ebp, dword [ebx + edi*4]
and edx, 0xe
and eax, 0xe
mov bl, al
or bl, dl
jne 0x6c565008
mov ebx, dword [esp + 0x54]
inc dword [esp + 0x18]
add dword [esp + 0x30], ebx
jmp 0x6c5651f3
mov ebx, ebp
or ebx, esi
and bl, 7
jne 0x6c56504a
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x30]
add ebx, dword [esp + 0x64]
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 0x6c564ff7
movzx eax, al
movzx edx, dl
mov ebx, dword [esp + 0x18]
test eax, eax
sete byte [esp + 0x27]
test edx, edx
mov dword [esp + 0x2c], eax
sete al
or byte [esp + 0x27], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x44], edx
mov dword [esp + 0xc], 0
lea esi, [eax + ebx*8]
mov ebx, dword [esp + 0x1c]
mov ecx, esi
sub ecx, dword [esp + 0x20]
movzx ebx, byte [ecx + ebx]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 8]
movzx ebp, byte [ecx + ebx]
mov ebx, ebp
sub ebx, dword [esp + 8]
mov eax, ebx
cdq
mov eax, edx
xor eax, ebx
sub eax, edx
movzx edx, byte [esi]
mov dword [esp + 4], eax
sub edi, edx
mov eax, edi
cdq
mov eax, dword [esp + 0x14]
xor edi, edx
sub edi, edx
movzx edx, byte [ecx + eax]
mov eax, dword [esp + 4]
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 0x6c5651de
cmp byte [esp + 0x27], 0
je 0x6c565109
shl eax, 4
mov ebx, 9
cdq
idiv ebx
cmp dword [esp + 0x44], 0
je 0x6c56516a
imul edx, eax, 7
mov ebx, dword [esp + 8]
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
mov ebx, dword [esp + 0x1c]
mov byte [ecx + ebx], dl
movzx ebx, byte [esi]
lea edx, [eax + eax*4]
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
mov byte [esi], dl
mov edx, dword [esp + 0x34]
movzx ebx, byte [ecx + edx]
lea edx, [eax + eax*2]
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
mov ebx, dword [esp + 0x34]
mov byte [ecx + ebx], dl
mov edx, dword [esp + 0x38]
movzx ebx, byte [ecx + edx]
mov edx, eax
sar edx, 4
mov dl, byte [ebx + edx + 0x6c580c60]
mov ebx, dword [esp + 0x38]
mov byte [ecx + ebx], dl
cmp dword [esp + 0x2c], 0
je 0x6c5651de
mov ebx, dword [esp + 0x10]
movzx edx, byte [ecx + ebx]
imul ebx, eax, 7
sar ebx, 4
sub edx, ebx
mov ebx, dword [esp + 0x10]
mov dl, byte [edx + 0x6c580c60]
mov byte [ecx + ebx], dl
mov ebx, dword [esp + 0x14]
movzx edx, byte [ecx + ebx]
lea ebx, [eax + eax*4]
sar ebx, 4
sub edx, ebx
mov ebx, dword [esp + 0x14]
mov dl, byte [edx + 0x6c580c60]
mov byte [ecx + ebx], dl
mov ebx, dword [esp + 0x3c]
movzx edx, byte [ecx + ebx]
lea ebx, [eax + eax*2]
sar ebx, 4
sar eax, 4
sub edx, ebx
mov ebx, dword [esp + 0x3c]
mov dl, byte [edx + 0x6c580c60]
mov byte [ecx + ebx], dl
mov ebx, dword [esp + 0x40]
movzx edx, byte [ecx + ebx]
sub edx, eax
mov al, byte [edx + 0x6c580c60]
mov byte [ecx + ebx], al
inc dword [esp + 0xc]
inc esi
cmp dword [esp + 0xc], 8
jne 0x6c56507b
jmp 0x6c564ff7
mov ecx, dword [esp + 0x4c]
cmp dword [esp + 0x18], ecx
jl 0x6c564fa2
mov ebx, dword [esp + 0x10]
inc dword [esp + 0x5c]
add dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x5c]
cmp dword [esp + 0x6c], ebx
jle 0x6c56524c
mov cl, byte [esp + 0xa8]
mov dword [esp + 0x18], 0
sar ebx, cl
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x5c]
inc ebx
sar ebx, cl
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x60]
shl ebx, 2
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x68]
add dword [esp + 0x60], ebx
jmp 0x6c5651f3
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret