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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x38], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
xor ebx, ebx
test edi, edi
jne 0x70f074
mov ebx, dword [edx + 0x28]
mov ecx, dword [esp + 0x70]
mov dword [esi], 0
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x70f14a
mov esi, edi
mov ebp, ecx
mov edi, dword [esp + 0x5c]
push dword [edx + 0x30]
push eax
push edi
call fcn.005bb2e0
add esp, 0xc
test eax, eax
je 0x70f188
mov dword [esp + 0x24], eax
push eax
call fcn.005c4cc0
add esp, 4
test eax, eax
jle 0x70f2d2
lea ecx, [eax*8]
test ebp, ebp
mov dword [esp + 8], ecx
cmove ebp, ecx
cmp ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x60]
jae 0x70f492
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x70f1dc
cmp ecx, 1
jne 0x70f492
cmp dword [esp + 0x6c], 0x400
jne 0x70f104
cmp ebp, 0xa0
je 0x70f21a
cmp dword [esp + 0x6c], 0x800
jne 0x70f126
cmp ebp, 0xe0
je 0x70f21a
cmp ebp, 0x100
je 0x70f21a
call fcn.005b7120
push str.ffc_validate_LN
push 0x4d
push str.crypto_ffc_ffc_params_generate.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x7f
push 5
jmp 0x70f486
cmp dword [esp + 0x6c], 0x800
mov eax, 0x100
mov ebp, 0xa0
cmovae ebp, eax
test ecx, ecx
cmovne ebp, ecx
cmp ebp, 0xa0
je 0x70f1af
cmp ebp, 0x100
je 0x70f1a3
cmp ebp, 0xe0
jne 0x70f1bb
mov esi, edi
mov eax, str.SHA_224
jmp 0x70f08d
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x70f2e0
mov esi, edi
mov eax, str.SHA_256
jmp 0x70f08d
mov esi, edi
mov eax, 0xa6551b
jmp 0x70f08d
mov dword [esi], 0x20
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x70f4aa
cmp dword [esp + 0x6c], 0xc00
jb 0x70f1ee
cmp ebp, 0xff
ja 0x70f21a
cmp dword [esp + 0x6c], 0x800
jb 0x70f200
cmp ebp, 0xdf
ja 0x70f21a
cmp dword [esp + 0x6c], 0x400
jb 0x70f467
cmp ebp, 0x9f
jbe 0x70f467
mov dword [esp + 0x10], eax
call fcn.005b9f40
test eax, eax
je 0x70f2d2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
push edi
call fcn.00585f70
add esp, 4
test eax, eax
je 0x70f2ed
mov ebx, eax
push eax
call fcn.00586200
add esp, 4
push ebx
call fcn.005863b0
add esp, 4
mov edi, eax
push ebx
call fcn.005863b0
add esp, 4
mov dword [esp + 0x3c], eax
push ebx
call fcn.005863b0
add esp, 4
mov dword [esp + 0x34], eax
push ebx
call fcn.005863b0
add esp, 4
mov dword [esp + 0x2c], eax
push ebx
call fcn.005863b0
add esp, 4
test eax, eax
je 0x70f2f5
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0x14]
test eax, eax
mov edi, dword [esp + 0x10]
cmovne edi, eax
mov dword [esp + 0x10], edi
test esi, esi
mov dword [esp], ecx
je 0x70f2fb
cmp dword [edx], 0
sete al
cmp dword [edx + 4], 0
setne cl
cmp al, cl
je 0x70f51e
mov eax, dword [esp + 0x18]
and eax, 1
jmp 0x70f327
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
xor ecx, ecx
xor ebp, ebp
mov edx, dword [esp + 0x60]
jmp 0x70f4ae
xor esi, esi
xor eax, eax
xor ebx, ebx
jmp 0x70f2e0
xor esi, esi
xor eax, eax
jmp 0x70f2e0
mov eax, dword [esp + 0x18]
and eax, 1
je 0x70f316
test ecx, ecx
je 0x70f571
cmp dword [edx + 0x18], 0
js 0x70f571
test byte [esp + 0x18], 2
je 0x70f327
cmp dword [edx + 8], 0
je 0x70f601
mov ecx, dword [edx]
test ecx, ecx
je 0x70f536
test eax, eax
jne 0x70f536
mov dword [esp + 0xc], ecx
mov edi, dword [edx + 4]
mov dword [esp + 4], 0
call fcn.0058be70
xor ebp, ebp
test eax, eax
je 0x70f580
push ebx
push dword [esp + 0x10]
mov dword [esp + 0x10], eax
push eax
call fcn.0058bf70
add esp, 0xc
test eax, eax
je 0x70f8f2
mov dword [esp + 0x14], edi
and dword [esp + 0x18], 2
je 0x70f3a8
push dword [esp + 0x74]
push dword [esp + 0x34]
mov eax, dword [esp + 0x68]
push dword [eax + 8]
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push ebx
call fcn.005d66b0
add esp, 0x1c
test eax, eax
je 0x70f8f2
call fcn.00589710
push eax
push dword [esp + 0x10]
mov edi, dword [esp + 0x44]
push edi
call fcn.00585cb0
add esp, 0xc
test eax, eax
je 0x70f8f2
push ebx
push dword [esp + 0x18]
push edi
push 0
push dword [esp + 0x44]
call fcn.00586730
add esp, 0x14
test eax, eax
je 0x70f8f2
mov ecx, dword [esp]
test ecx, ecx
mov eax, dword [esp + 0x60]
je 0x70f614
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x70f614
mov edi, ecx
mov ecx, ebx
mov edx, dword [esp + 8]
push dword [esp + 0x10]
push edi
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
push dword [esp + 0x44]
push dword [esp + 0x34]
push dword [esp + 0x40]
call fcn.0070ffb0
add esp, 0x20
test eax, eax
je 0x70f8e8
mov edi, 1
test esi, esi
jne 0x70f7e3
mov eax, dword [esp + 0x60]
push dword [eax + 8]
push dword [esp + 0x20]
call fcn.0058a670
add esp, 8
test eax, eax
je 0x70f7e3
mov eax, dword [esp + 0x74]
mov dword [eax], 0x8000
jmp 0x70f8f2
call fcn.005b7120
push str.ffc_validate_LN
push 0x57
push str.crypto_ffc_ffc_params_generate.c
call fcn.005b7220
add esp, 0xc
push 0
push 0x72
push 0xa
call fcn.005b7310
add esp, 0xc
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x74]
mov dword [eax], 0x20000
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
xor ecx, ecx
xor ebp, ebp
cmp ecx, dword [edx + 0x10]
je 0x70f4ca
push 0x31a
push str.crypto_ffc_ffc_params_generate.c
push ecx
mov edi, eax
call fcn.005dcbc0
mov eax, edi
add esp, 0xc
push 0x31b
push str.crypto_ffc_ffc_params_generate.c
push eax
call fcn.005dcbc0
add esp, 0xc
test ebx, ebx
je 0x70f4ea
push ebx
call fcn.005862e0
add esp, 4
push ebx
call fcn.00586030
add esp, 4
push esi
call fcn.0058bf20
add esp, 4
push dword [esp + 0x20]
call fcn.005b9f60
add esp, 4
push dword [esp + 0x24]
call fcn.005b9d90
add esp, 4
mov eax, ebp
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x74]
mov dword [eax], 0x800
xor esi, esi
xor eax, eax
xor ebp, ebp
mov ecx, dword [esp]
jmp 0x70f4ae
push ebx
call fcn.005863b0
add esp, 4
mov dword [esp + 0xc], eax
push ebx
call fcn.005863b0
add esp, 4
test eax, eax
je 0x70f5ef
mov edi, eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx*8]
cmp eax, ebp
jae 0x70f592
mov eax, dword [esp + 0x74]
mov dword [eax], 0x40000
jmp 0x70f5ef
mov eax, dword [esp + 0x74]
mov dword [eax], 0x200
jmp 0x70f60b
xor esi, esi
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
jmp 0x70f4ae
push 0x283
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.005dc9b0
add esp, 0xc
test eax, eax
je 0x70f5ef
mov ecx, dword [esp]
test ecx, ecx
mov edx, dword [esp + 0x60]
je 0x70f654
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
lea eax, [eax*4 - 1]
mov dword [esp + 0x28], eax
test esi, esi
jne 0x70f690
mov eax, dword [edx + 0x18]
cmp eax, dword [esp + 0x28]
jle 0x70f68c
mov eax, dword [esp + 0x74]
mov dword [eax], 0x1000
jmp 0x70f7d4
xor esi, esi
xor eax, eax
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
jmp 0x70f4ae
mov eax, dword [esp + 0x74]
mov dword [eax], 0x400
xor esi, esi
xor eax, eax
jmp 0x70f4ac
test esi, esi
je 0x70f7e1
lea eax, [esp + 0x40]
mov ecx, ebx
mov edx, dword [esp + 8]
push eax
push dword [esp + 0x40]
push dword [esp + 0x3c]
push dword [esp + 0x18]
push dword [esp + 0x40]
push dword [esp + 0x30]
call fcn.00710110
add esp, 0x18
xor edi, edi
test eax, eax
jne 0x70f7e3
xor ebp, ebp
jmp 0x70f8f2
test esi, esi
je 0x70f8ba
mov dword [esp + 4], eax
push 0x28e
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x18]
call fcn.005dc9b0
add esp, 0xc
test eax, eax
je 0x70f906
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
lea eax, [eax*4 - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
lea esi, [eax - 1]
mov eax, esi
xor edx, edx
div dword [esp + 8]
mov dword [esp + 8], eax
call fcn.00589710
push esi
push eax
push dword [esp + 0x34]
call fcn.0058e720
add esp, 0xc
test eax, eax
je 0x70f99d
shr ebp, 3
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x10]
mov esi, dword [esp]
mov dword [esp + 0x14], edi
mov dword [esp], esi
xor eax, eax
cmp esi, ecx
setne al
mov ecx, ebx
mov esi, edi
mov edx, edi
push dword [esp + 0x78]
push dword [esp + 0x78]
lea edi, [esp + 0x4c]
push edi
push eax
push dword [esp + 0x20]
push dword [esp + 0x14]
push ebp
push dword [esp + 0x40]
call fcn.0070f9c0
add esp, 0x20
test eax, eax
je 0x70f974
cmp dword [esp + 0x64], 0
jne 0x70f729
mov eax, dword [esp + 0x60]
push dword [eax + 4]
push esi
call fcn.0058a670
add esp, 8
test eax, eax
jne 0x70f96a
push 0
push 2
mov esi, dword [esp + 0x80]
push esi
call fcn.006af260
add esp, 0xc
test eax, eax
je 0x70f974
push 0
push 3
push esi
call fcn.006af260
add esp, 0xc
test eax, eax
je 0x70f974
mov esi, dword [esp + 0x10]
push esi
push dword [esp + 4]
mov edi, dword [esp + 0xc]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, ebx
mov edx, dword [esp + 0x24]
push dword [esp + 0x74]
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x80]
push dword [esp + 0x78]
push dword [esp + 0x1c]
push dword [esp + 0x28]
push esi
push edi
push dword [esp + 0x28]
push dword [esp + 0x4c]
call fcn.0070fcd0
add esp, 0x28
test eax, eax
jg 0x70f919
js 0x70f974
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 0x10]
mov esi, dword [esp]
cmp esi, ecx
mov edi, dword [esp + 0x14]
jne 0x70f6d2
mov eax, dword [esp + 0x74]
mov dword [eax], 1
mov ecx, esi
xor esi, esi
xor ebp, ebp
mov eax, dword [esp + 4]
jmp 0x70f4ae
xor edi, edi
push 1
push 3
push dword [esp + 0x80]
call fcn.006af260
add esp, 0xc
test eax, eax
je 0x70f8f2
test esi, esi
mov edx, dword [esp + 0x60]
je 0x70f8cb
mov eax, dword [edx]
mov esi, dword [esp + 0xc]
cmp esi, eax
je 0x70f82c
push eax
call fcn.005899b0
add esp, 4
push esi
call fcn.00589ba0
mov edx, dword [esp + 0x64]
add esp, 4
mov dword [edx], eax
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x14]
cmp esi, eax
je 0x70f850
push eax
call fcn.005899b0
add esp, 4
push esi
call fcn.00589ba0
mov edx, dword [esp + 0x64]
add esp, 4
mov dword [edx + 4], eax
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x1c]
cmp esi, eax
je 0x70f878
push eax
call fcn.005899b0
add esp, 4
push esi
call fcn.00589ba0
mov edx, dword [esp + 0x64]
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [edx + 8], eax
cmp dword [edx], 0
je 0x70f8f6
mov dword [esp + 0x2c], edi
cmp dword [edx + 4], 0
sete al
cmp dword [esp + 0x1c], 0
sete cl
or cl, al
jne 0x70f8f6
push dword [esp + 0x38]
push dword [esp + 0x14]
push dword [esp + 8]
push edx
call fcn.005d6050
add esp, 0x10
test eax, eax
je 0x70f8f2
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
mov dword [edx + 0x24], eax
jmp 0x70f8cf
mov ecx, dword [esp + 0x74]
mov dword [ecx], 0x200
xor esi, esi
jmp 0x70f4aa
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x18]
test eax, eax
setne al
cmp dword [esp + 0x2c], 0
sete cl
and cl, al
movzx ebp, cl
inc ebp
jmp 0x70f8f6
mov eax, dword [esp + 0x74]
mov dword [eax], 0x400
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
mov esi, dword [esp + 8]
jmp 0x70f4ae
xor esi, esi
xor ecx, ecx
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 4]
jmp 0x70f4ae
push 1
push 2
push dword [esp + 0x80]
call fcn.006af260
add esp, 0xc
test eax, eax
je 0x70f974
cmp dword [esp + 0x64], 0
je 0x70f97d
mov ecx, dword [esp + 0x18]
and ecx, 3
xor eax, eax
mov dword [esp + 8], 0
mov dword [esp + 0x2c], 0
cmp ecx, 1
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x14]
jne 0x70f348
jmp 0x70f8d3
mov eax, dword [esp + 0x74]
mov dword [eax], 0x4000
xor esi, esi
xor ebp, ebp
jmp 0x70f582
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x38], eax
jne 0x70f99d
mov eax, dword [esp + 0x60]
push dword [eax]
push dword [esp + 0x10]
call fcn.0058a670
add esp, 8
test eax, eax
je 0x70f937
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
xor esi, esi
jmp 0x70f4ae