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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x294
mov eax, dword [esp + 0x2c4]
mov ebx, eax
test eax, eax
je 0x6c8a0e
mov ebx, dword [esp + 0x2c8]
cmp byte [esp + 0x2c0], 0
setne cl
test ebx, ebx
sete dl
xor eax, eax
test cl, dl
jne 0x6c95c6
cmp byte [esp + 0x2b8], 0
sete cl
test ebx, ebx
setne dl
test cl, dl
jne 0x6c95c6
mov esi, dword [esp + 0x2b0]
lea edi, [esi + 0x20]
cmp byte [esi + 0x3f], 0x10
ja 0x6c95c6
jne 0x6c8a80
lea eax, [esi + 0x30]
push 0xf
push 0xabbc67
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x6c9333
cmp byte [esi + 0x2f], 0x14
mov eax, 0
jae 0x6c95d1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x2b4]
lea esi, [esp + 0xec]
mov ecx, esi
call fcn.006cf8b0
pxor xmm0, xmm0
movdqu xmmword [esp + 0x128], xmm0
movdqu xmmword [esp + 0x118], xmm0
mov dword [esp + 0x138], 0
mov dword [esp + 0x114], 1
lea edi, [esp + 0x74]
mov ecx, edi
mov edx, esi
call fcn.006cef30
lea esi, [esp + 0x164]
mov ecx, esi
mov edx, edi
push 0xac34b8
call fcn.006cc9e0
add esp, 4
dec dword [esp + 0x74]
inc dword [esp + 0x164]
lea ebp, [esp + 0x22c]
mov ecx, ebp
mov edx, edi
push esi
call fcn.006cc9e0
add esp, 4
lea edi, [esp + 0x1b4]
mov ecx, edi
mov edx, ebp
call fcn.006cef30
lea ebx, [esp + 0x254]
mov ecx, ebx
mov edx, edi
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebp
push ebx
call fcn.006cc9e0
add esp, 4
mov ecx, edi
mov edx, edi
push ebx
call fcn.006cc9e0
add esp, 4
mov ecx, edi
mov edx, edi
call fcn.006cef30
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
push edi
call fcn.006cc9e0
add esp, 4
lea ebp, [esp + 0x18c]
mov ecx, ebp
mov edx, ebx
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
mov ecx, ebx
mov edx, ebp
push ebx
call fcn.006cc9e0
add esp, 4
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
mov esi, edi
push edi
call fcn.006cc9e0
add esp, 4
mov ecx, ebp
mov edx, ebx
call fcn.006cef30
mov edi, 0x63
nop word cs:[eax + eax]
mov ecx, ebp
mov edx, ebp
call fcn.006cef30
dec edi
jne 0x6c8f20
lea edx, [esp + 0x18c]
mov ecx, ebx
push ebx
call fcn.006cc9e0
add esp, 4
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, ebx
mov edx, ebx
call fcn.006cef30
mov ecx, esi
mov edx, ebx
push esi
call fcn.006cc9e0
add esp, 4
mov ecx, esi
mov edx, esi
call fcn.006cef30
mov ecx, esi
mov edx, esi
call fcn.006cef30
lea ebp, [esp + 0xc4]
mov ecx, ebp
mov edx, esi
lea eax, [esp + 0x22c]
push eax
call fcn.006cc9e0
add esp, 4
mov ecx, ebp
mov edx, ebp
lea eax, [esp + 0x74]
push eax
call fcn.006cc9e0
add esp, 4
lea esi, [esp + 0x9c]
mov ecx, esi
mov edx, ebp
call fcn.006cef30
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x164]
push eax
call fcn.006cc9e0
add esp, 4
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], esi
sub eax, esi
mov dword [esp + 4], eax
mov dword [esp], ecx
mov eax, ecx
mov dword [esp + 0x70], edx
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ecx
sub eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ecx
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
sub eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
sub eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x3c], eax
sub eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x38], eax
sub eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x34], eax
sub eax, ebp
mov dword [esp + 0x28], eax
lea edx, [esp + 4]
lea ecx, [esp + 0x1b4]
call fcn.006cd9a0
push 0x20
push 0xac3508
lea eax, [esp + 0x1bc]
push eax
call fcn.005e84d0
add esp, 0xc
test eax, eax
je 0x6c9350
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
add eax, dword [esp]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
add esi, dword [esp + 0x3c]
mov dword [esp + 0x20], esi
add edi, dword [esp + 0x38]
mov dword [esp + 0x24], edi
add ebp, dword [esp + 0x34]
mov dword [esp + 0x28], ebp
lea edx, [esp + 4]
lea esi, [esp + 0x1b4]
mov ecx, esi
call fcn.006cd9a0
push 0x20
push 0xac3508
push esi
call fcn.005e84d0
add esp, 0xc
test eax, eax
je 0x6c933a
xor eax, eax
jmp 0x6c95c6
lea ecx, [esp + 0xc4]
mov edx, ecx
push 0xac34e0
call fcn.006cc9e0
add esp, 4
lea ecx, [esp + 0x1b4]
lea edx, [esp + 0xc4]
call fcn.006cd9a0
movzx eax, byte [esp + 0x1b4]
and al, 1
mov ecx, dword [esp + 0x2b4]
movzx ecx, byte [ecx + 0x1f]
shr cl, 7
cmp al, cl
je 0x6c93cd
pxor xmm0, xmm0
movdqu xmm1, xmmword [esp + 0xc4]
movdqu xmm2, xmmword [esp + 0xd4]
pxor xmm3, xmm3
psubd xmm3, xmm1
movdqu xmmword [esp + 0xc4], xmm3
pxor xmm1, xmm1
psubd xmm1, xmm2
movdqu xmmword [esp + 0xd4], xmm1
movq xmm1, qword [esp + 0xe4]
psubd xmm0, xmm1
movq qword [esp + 0xe4], xmm0
lea ecx, [esp + 0x13c]
lea edx, [esp + 0xc4]
lea eax, [esp + 0xec]
push eax
call fcn.006cc9e0
add esp, 4
pxor xmm0, xmm0
movdqu xmm1, xmmword [esp + 0xc4]
movdqu xmm2, xmmword [esp + 0xd4]
pxor xmm3, xmm3
psubd xmm3, xmm1
movdqu xmmword [esp + 0xc4], xmm3
pxor xmm1, xmm1
psubd xmm1, xmm2
movdqu xmmword [esp + 0xd4], xmm1
movq xmm1, qword [esp + 0xe4]
pxor xmm2, xmm2
psubd xmm2, xmm1
movq qword [esp + 0xe4], xmm2
movdqu xmm1, xmmword [esp + 0x13c]
pxor xmm2, xmm2
psubd xmm2, xmm1
movdqu xmmword [esp + 0x13c], xmm2
movdqu xmm1, xmmword [esp + 0x14c]
pxor xmm2, xmm2
psubd xmm2, xmm1
movdqu xmmword [esp + 0x14c], xmm2
movq xmm1, qword [esp + 0x15c]
psubd xmm0, xmm1
movq qword [esp + 0x15c], xmm0
push dword [esp + 0x2d0]
push str.SHA512
push dword [esp + 0x2d4]
call fcn.005b9cd0
add esp, 0xc
mov esi, eax
test eax, eax
mov eax, 0
je 0x6c95c6
call fcn.005b8930
mov ebp, eax
mov dword [esp], 0
test eax, eax
je 0x6c95b1
movzx eax, byte [esp + 0x2bc]
movzx edi, byte [esp + 0x2b8]
mov ecx, ebp
mov edx, esi
push dword [esp + 0x30]
push dword [esp + 0x2c8]
push eax
push edi
call fcn.006c3b60
add esp, 0x10
test eax, eax
je 0x6c95b1
push 0x20
mov edi, dword [esp + 0x2b4]
push edi
push ebp
call fcn.005b9000
add esp, 0xc
test eax, eax
je 0x6c95b1
push 0x20
push dword [esp + 0x2b8]
push ebp
call fcn.005b9000
add esp, 0xc
test eax, eax
je 0x6c95b1
push dword [esp + 0x2ac]
push dword [esp + 0x2ac]
push ebp
call fcn.005b9000
add esp, 0xc
test eax, eax
je 0x6c95b1
lea eax, [esp + 0x74]
push eax
push ebx
push ebp
call fcn.005b9180
add esp, 0xc
test eax, eax
je 0x6c95b1
lea ebx, [esp + 0x254]
mov ecx, ebx
call fcn.006c3c20
lea ecx, [esp + 0x1b4]
mov edx, ebx
push dword [esp + 0x2c]
lea eax, [esp + 0xc8]
push eax
call fcn.006c96f0
add esp, 8
lea ebx, [esp + 0x18c]
mov ecx, ebx
lea edx, [esp + 0x1b4]
call fcn.006cb2a0
push 0x20
push edi
push ebx
call fcn.005e84d0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp], ecx
push esi
call fcn.005b8780
add esp, 4
push ebp
call fcn.005b8950
add esp, 4
mov eax, dword [esp]
add esp, 0x294
pop esi
pop edi
pop ebx
pop ebp
ret
jne 0x6c95c6
cmp byte [esi + 0x2e], 0xde
jb 0x6c8a80
jne 0x6c95c6
cmp byte [esi + 0x2d], 0xf9
jb 0x6c8a80
jne 0x6c95c6
cmp byte [esi + 0x2c], 0xde
jb 0x6c8a80
jne 0x6c95c6
cmp byte [esi + 0x2b], 0xa2
jb 0x6c8a80
jne 0x6c9333
mov edx, ebx
mov ecx, edi
cmp byte [esi + 0x2a], 0xf7
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x29], 0x9c
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x28], 0xd6
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x27], 0x58
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x26], 0x12
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x25], 0x63
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x24], 0x1a
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x23], 0x5c
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x22], 0xf5
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
cmp byte [esi + 0x21], 0xd3
mov edi, ecx
mov ebx, edx
jb 0x6c8a80
jne 0x6c9333
mov edi, ecx
cmp byte [ecx], 0xed
mov ebx, edx
jb 0x6c8a80
jmp 0x6c95c6