Function at 0x70d040
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 0x70d074
mov ebx, dword [edx + 0x28]
mov ecx, dword [esp + 0x70]
mov dword [esi], 0
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x70d14a
mov esi, edi
mov ebp, ecx
mov edi, dword [esp + 0x5c]
push dword [edx + 0x30]
push eax
push edi
call fcn.005b9cd0
add esp, 0xc
test eax, eax
je 0x70d188
mov dword [esp + 0x24], eax
push eax
call fcn.005c36b0
add esp, 4
test eax, eax
jle 0x70d2d2
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 0x70d492
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x70d1dc
cmp ecx, 1
jne 0x70d492
cmp dword [esp + 0x6c], 0x400
jne 0x70d104
cmp ebp, 0xa0
je 0x70d21a
cmp dword [esp + 0x6c], 0x800
jne 0x70d126
cmp ebp, 0xe0
je 0x70d21a
cmp ebp, 0x100
je 0x70d21a
call fcn.005b5b10
push str.ffc_validate_LN
push 0x4d
push str.crypto_ffc_ffc_params_generate.c
call fcn.005b5c10
add esp, 0xc
push 0
push 0x7f
push 5
jmp 0x70d486
cmp dword [esp + 0x6c], 0x800
mov eax, 0x100
mov ebp, 0xa0
cmovae ebp, eax
test ecx, ecx
cmovne ebp, ecx
cmp ebp, 0xa0
je 0x70d1af
cmp ebp, 0x100
je 0x70d1a3
cmp ebp, 0xe0
jne 0x70d1bb
mov esi, edi
mov eax, str.SHA_224
jmp 0x70d08d
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x70d2e0
mov esi, edi
mov eax, str.SHA_256
jmp 0x70d08d
mov esi, edi
mov eax, 0x9c9d1b
jmp 0x70d08d
mov dword [esi], 0x20
xor esi, esi
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x70d4aa
cmp dword [esp + 0x6c], 0xc00
jb 0x70d1ee
cmp ebp, 0xff
ja 0x70d21a
cmp dword [esp + 0x6c], 0x800
jb 0x70d200
cmp ebp, 0xdf
ja 0x70d21a
cmp dword [esp + 0x6c], 0x400
jb 0x70d467
cmp ebp, 0x9f
jbe 0x70d467
mov dword [esp + 0x10], eax
call fcn.005b8930
test eax, eax
je 0x70d2d2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
push edi
call fcn.00584960
add esp, 4
test eax, eax
je 0x70d2ed
mov ebx, eax
push eax
call fcn.00584bf0
add esp, 4
push ebx
call fcn.00584da0
add esp, 4
mov edi, eax
push ebx
call fcn.00584da0
add esp, 4
mov dword [esp + 0x3c], eax
push ebx
call fcn.00584da0
add esp, 4
mov dword [esp + 0x34], eax
push ebx
call fcn.00584da0
add esp, 4
mov dword [esp + 0x2c], eax
push ebx
call fcn.00584da0
add esp, 4
test eax, eax
je 0x70d2f5
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 0x70d2fb
cmp dword [edx], 0
sete al
cmp dword [edx + 4], 0
setne cl
cmp al, cl
je 0x70d51e
mov eax, dword [esp + 0x18]
and eax, 1
jmp 0x70d327
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 0x70d4ae
xor esi, esi
xor eax, eax
xor ebx, ebx
jmp 0x70d2e0
xor esi, esi
xor eax, eax
jmp 0x70d2e0
mov eax, dword [esp + 0x18]
and eax, 1
je 0x70d316
test ecx, ecx
je 0x70d571
cmp dword [edx + 0x18], 0
js 0x70d571
test byte [esp + 0x18], 2
je 0x70d327
cmp dword [edx + 8], 0
je 0x70d601
mov ecx, dword [edx]
test ecx, ecx
je 0x70d536
test eax, eax
jne 0x70d536
mov dword [esp + 0xc], ecx
mov edi, dword [edx + 4]
mov dword [esp + 4], 0
call fcn.0058a860
xor ebp, ebp
test eax, eax
je 0x70d580
push ebx
push dword [esp + 0x10]
mov dword [esp + 0x10], eax
push eax
call fcn.0058a960
add esp, 0xc
test eax, eax
je 0x70d8f2
mov dword [esp + 0x14], edi
and dword [esp + 0x18], 2
je 0x70d3a8
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.005d50a0
add esp, 0x1c
test eax, eax
je 0x70d8f2
call fcn.00588100
push eax
push dword [esp + 0x10]
mov edi, dword [esp + 0x44]
push edi
call fcn.005846a0
add esp, 0xc
test eax, eax
je 0x70d8f2
push ebx
push dword [esp + 0x18]
push edi
push 0
push dword [esp + 0x44]
call fcn.00585120
add esp, 0x14
test eax, eax
je 0x70d8f2
mov ecx, dword [esp]
test ecx, ecx
mov eax, dword [esp + 0x60]
je 0x70d614
mov eax, dword [eax + 0x20]
cmp eax, 0xffffffff
je 0x70d614
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.0070dfb0
add esp, 0x20
test eax, eax
je 0x70d8e8
mov edi, 1
test esi, esi
jne 0x70d7e3
mov eax, dword [esp + 0x60]
push dword [eax + 8]
push dword [esp + 0x20]
call fcn.00589060
add esp, 8
test eax, eax
je 0x70d7e3
mov eax, dword [esp + 0x74]
mov dword [eax], 0x8000
jmp 0x70d8f2
call fcn.005b5b10
push str.ffc_validate_LN
push 0x57
push str.crypto_ffc_ffc_params_generate.c
call fcn.005b5c10
add esp, 0xc
push 0
push 0x72
push 0xa
call fcn.005b5d00
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 0x70d4ca
push 0x31a
push str.crypto_ffc_ffc_params_generate.c
push ecx
mov edi, eax
call fcn.005db5b0
mov eax, edi
add esp, 0xc
push 0x31b
push str.crypto_ffc_ffc_params_generate.c
push eax
call fcn.005db5b0
add esp, 0xc
test ebx, ebx
je 0x70d4ea
push ebx
call fcn.00584cd0
add esp, 4
push ebx
call fcn.00584a20
add esp, 4
push esi
call fcn.0058a910
add esp, 4
push dword [esp + 0x20]
call fcn.005b8950
add esp, 4
push dword [esp + 0x24]
call fcn.005b8780
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 0x70d4ae
push ebx
call fcn.00584da0
add esp, 4
mov dword [esp + 0xc], eax
push ebx
call fcn.00584da0
add esp, 4
test eax, eax
je 0x70d5ef
mov edi, eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx*8]
cmp eax, ebp
jae 0x70d592
mov eax, dword [esp + 0x74]
mov dword [eax], 0x40000
jmp 0x70d5ef
mov eax, dword [esp + 0x74]
mov dword [eax], 0x200
jmp 0x70d60b
xor esi, esi
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
jmp 0x70d4ae
push 0x283
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.005db3a0
add esp, 0xc
test eax, eax
je 0x70d5ef
mov ecx, dword [esp]
test ecx, ecx
mov edx, dword [esp + 0x60]
je 0x70d654
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
lea eax, [eax*4 - 1]
mov dword [esp + 0x28], eax
test esi, esi
jne 0x70d690
mov eax, dword [edx + 0x18]
cmp eax, dword [esp + 0x28]
jle 0x70d68c
mov eax, dword [esp + 0x74]
mov dword [eax], 0x1000
jmp 0x70d7d4
xor esi, esi
xor eax, eax
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
jmp 0x70d4ae
mov eax, dword [esp + 0x74]
mov dword [eax], 0x400
xor esi, esi
xor eax, eax
jmp 0x70d4ac
test esi, esi
je 0x70d7e1
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.0070e110
add esp, 0x18
xor edi, edi
test eax, eax
jne 0x70d7e3
xor ebp, ebp
jmp 0x70d8f2
test esi, esi
je 0x70d8ba
mov dword [esp + 4], eax
push 0x28e
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x18]
call fcn.005db3a0
add esp, 0xc
test eax, eax
je 0x70d906
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.00588100
push esi
push eax
push dword [esp + 0x34]
call fcn.0058d110
add esp, 0xc
test eax, eax
je 0x70d99d
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.0070d9c0
add esp, 0x20
test eax, eax
je 0x70d974
cmp dword [esp + 0x64], 0
jne 0x70d729
mov eax, dword [esp + 0x60]
push dword [eax + 4]
push esi
call fcn.00589060
add esp, 8
test eax, eax
jne 0x70d96a
push 0
push 2
mov esi, dword [esp + 0x80]
push esi
call fcn.006adc60
add esp, 0xc
test eax, eax
je 0x70d974
push 0
push 3
push esi
call fcn.006adc60
add esp, 0xc
test eax, eax
je 0x70d974
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.0070dcd0
add esp, 0x28
test eax, eax
jg 0x70d919
js 0x70d974
mov edx, dword [esp + 0x60]
mov ecx, dword [edx + 0x10]
mov esi, dword [esp]
cmp esi, ecx
mov edi, dword [esp + 0x14]
jne 0x70d6d2
mov eax, dword [esp + 0x74]
mov dword [eax], 1
mov ecx, esi
xor esi, esi
xor ebp, ebp
mov eax, dword [esp + 4]
jmp 0x70d4ae
xor edi, edi
push 1
push 3
push dword [esp + 0x80]
call fcn.006adc60
add esp, 0xc
test eax, eax
je 0x70d8f2
test esi, esi
mov edx, dword [esp + 0x60]
je 0x70d8cb
mov eax, dword [edx]
mov esi, dword [esp + 0xc]
cmp esi, eax
je 0x70d82c
push eax
call fcn.005883a0
add esp, 4
push esi
call fcn.00588590
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 0x70d850
push eax
call fcn.005883a0
add esp, 4
push esi
call fcn.00588590
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 0x70d878
push eax
call fcn.005883a0
add esp, 4
push esi
call fcn.00588590
mov edx, dword [esp + 0x64]
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [edx + 8], eax
cmp dword [edx], 0
je 0x70d8f6
mov dword [esp + 0x2c], edi
cmp dword [edx + 4], 0
sete al
cmp dword [esp + 0x1c], 0
sete cl
or cl, al
jne 0x70d8f6
push dword [esp + 0x38]
push dword [esp + 0x14]
push dword [esp + 8]
push edx
call fcn.005d4a40
add esp, 0x10
test eax, eax
je 0x70d8f2
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x60]
mov dword [edx + 0x24], eax
jmp 0x70d8cf
mov ecx, dword [esp + 0x74]
mov dword [ecx], 0x200
xor esi, esi
jmp 0x70d4aa
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 0x70d8f6
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 0x70d4ae
xor esi, esi
xor ecx, ecx
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 4]
jmp 0x70d4ae
push 1
push 2
push dword [esp + 0x80]
call fcn.006adc60
add esp, 0xc
test eax, eax
je 0x70d974
cmp dword [esp + 0x64], 0
je 0x70d97d
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 0x70d348
jmp 0x70d8d3
mov eax, dword [esp + 0x74]
mov dword [eax], 0x4000
xor esi, esi
xor ebp, ebp
jmp 0x70d582
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x38], eax
jne 0x70d99d
mov eax, dword [esp + 0x60]
push dword [eax]
push dword [esp + 0x10]
call fcn.00589060
add esp, 8
test eax, eax
je 0x70d937
xor ebp, ebp
mov edx, dword [esp + 0x60]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
xor esi, esi
jmp 0x70d4ae