Function at 0x6c9ff0
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 0x6ca00e
mov ebx, dword [esp + 0x2c8]
cmp byte [esp + 0x2c0], 0
setne cl
test ebx, ebx
sete dl
xor eax, eax
test cl, dl
jne 0x6cabc6
cmp byte [esp + 0x2b8], 0
sete cl
test ebx, ebx
setne dl
test cl, dl
jne 0x6cabc6
mov esi, dword [esp + 0x2b0]
lea edi, [esi + 0x20]
cmp byte [esi + 0x3f], 0x10
ja 0x6cabc6
jne 0x6ca080
lea eax, [esi + 0x30]
push 0xf
push 0xa56207
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x6ca933
cmp byte [esi + 0x2f], 0x14
mov eax, 0
jae 0x6cabd1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x2b4]
lea esi, [esp + 0xec]
mov ecx, esi
call fcn.006d0eb0
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.006d0530
lea esi, [esp + 0x164]
mov ecx, esi
mov edx, edi
push 0xa5da58
call fcn.006cdfe0
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.006cdfe0
add esp, 4
lea edi, [esp + 0x1b4]
mov ecx, edi
mov edx, ebp
call fcn.006d0530
lea ebx, [esp + 0x254]
mov ecx, ebx
mov edx, edi
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebp
push ebx
call fcn.006cdfe0
add esp, 4
mov ecx, edi
mov edx, edi
push ebx
call fcn.006cdfe0
add esp, 4
mov ecx, edi
mov edx, edi
call fcn.006d0530
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cdfe0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cdfe0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
push edi
call fcn.006cdfe0
add esp, 4
lea ebp, [esp + 0x18c]
mov ecx, ebp
mov edx, ebx
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
mov ecx, ebx
mov edx, ebp
push ebx
call fcn.006cdfe0
add esp, 4
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, edi
mov edx, ebx
push edi
call fcn.006cdfe0
add esp, 4
mov ecx, ebx
mov edx, edi
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
mov esi, edi
push edi
call fcn.006cdfe0
add esp, 4
mov ecx, ebp
mov edx, ebx
call fcn.006d0530
mov edi, 0x63
nop word cs:[eax + eax]
mov ecx, ebp
mov edx, ebp
call fcn.006d0530
dec edi
jne 0x6ca520
lea edx, [esp + 0x18c]
mov ecx, ebx
push ebx
call fcn.006cdfe0
add esp, 4
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, ebx
mov edx, ebx
call fcn.006d0530
mov ecx, esi
mov edx, ebx
push esi
call fcn.006cdfe0
add esp, 4
mov ecx, esi
mov edx, esi
call fcn.006d0530
mov ecx, esi
mov edx, esi
call fcn.006d0530
lea ebp, [esp + 0xc4]
mov ecx, ebp
mov edx, esi
lea eax, [esp + 0x22c]
push eax
call fcn.006cdfe0
add esp, 4
mov ecx, ebp
mov edx, ebp
lea eax, [esp + 0x74]
push eax
call fcn.006cdfe0
add esp, 4
lea esi, [esp + 0x9c]
mov ecx, esi
mov edx, ebp
call fcn.006d0530
mov ecx, esi
mov edx, esi
lea eax, [esp + 0x164]
push eax
call fcn.006cdfe0
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.006cefa0
push 0x20
push 0xa5daa8
lea eax, [esp + 0x1bc]
push eax
call fcn.005e9ae0
add esp, 0xc
test eax, eax
je 0x6ca950
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.006cefa0
push 0x20
push 0xa5daa8
push esi
call fcn.005e9ae0
add esp, 0xc
test eax, eax
je 0x6ca93a
xor eax, eax
jmp 0x6cabc6
lea ecx, [esp + 0xc4]
mov edx, ecx
push 0xa5da80
call fcn.006cdfe0
add esp, 4
lea ecx, [esp + 0x1b4]
lea edx, [esp + 0xc4]
call fcn.006cefa0
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 0x6ca9cd
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.006cdfe0
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.005bb2e0
add esp, 0xc
mov esi, eax
test eax, eax
mov eax, 0
je 0x6cabc6
call fcn.005b9f40
mov ebp, eax
mov dword [esp], 0
test eax, eax
je 0x6cabb1
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.006c5160
add esp, 0x10
test eax, eax
je 0x6cabb1
push 0x20
mov edi, dword [esp + 0x2b4]
push edi
push ebp
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6cabb1
push 0x20
push dword [esp + 0x2b8]
push ebp
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6cabb1
push dword [esp + 0x2ac]
push dword [esp + 0x2ac]
push ebp
call fcn.005ba610
add esp, 0xc
test eax, eax
je 0x6cabb1
lea eax, [esp + 0x74]
push eax
push ebx
push ebp
call fcn.005ba790
add esp, 0xc
test eax, eax
je 0x6cabb1
lea ebx, [esp + 0x254]
mov ecx, ebx
call fcn.006c5220
lea ecx, [esp + 0x1b4]
mov edx, ebx
push dword [esp + 0x2c]
lea eax, [esp + 0xc8]
push eax
call fcn.006cacf0
add esp, 8
lea ebx, [esp + 0x18c]
mov ecx, ebx
lea edx, [esp + 0x1b4]
call fcn.006cc8a0
push 0x20
push edi
push ebx
call fcn.005e9ae0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp], ecx
push esi
call fcn.005b9d90
add esp, 4
push ebp
call fcn.005b9f60
add esp, 4
mov eax, dword [esp]
add esp, 0x294
pop esi
pop edi
pop ebx
pop ebp
ret
jne 0x6cabc6
cmp byte [esi + 0x2e], 0xde
jb 0x6ca080
jne 0x6cabc6
cmp byte [esi + 0x2d], 0xf9
jb 0x6ca080
jne 0x6cabc6
cmp byte [esi + 0x2c], 0xde
jb 0x6ca080
jne 0x6cabc6
cmp byte [esi + 0x2b], 0xa2
jb 0x6ca080
jne 0x6ca933
mov edx, ebx
mov ecx, edi
cmp byte [esi + 0x2a], 0xf7
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x29], 0x9c
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x28], 0xd6
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x27], 0x58
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x26], 0x12
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x25], 0x63
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x24], 0x1a
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x23], 0x5c
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x22], 0xf5
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
cmp byte [esi + 0x21], 0xd3
mov edi, ecx
mov ebx, edx
jb 0x6ca080
jne 0x6ca933
mov edi, ecx
cmp byte [ecx], 0xed
mov ebx, edx
jb 0x6ca080
jmp 0x6cabc6