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

Disassembly:
mov eax, 0xa8
call fcn.0047a3d0
mov eax, dword [0x665024]
xor eax, esp
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
xor ebx, ebx
push esi
mov dword [esp + 0x2c], eax
xor esi, esi
xor eax, eax
mov dword [esp + 0x14], ecx
push edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x64], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], eax
cmp dword [esp + 0xc4], eax
jne 0x4f1cc9
mov eax, dword [ecx + 0x28]
mov dword [ebp], ebx
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x4f1d20
test edi, edi
jne 0x4f1cf1
cmp dword [esp + 0xcc], 0x800
sbb edi, edi
and edi, 0xffffffa0
add edi, 0x100
cmp edi, 0xa0
jne 0x4f1d00
mov ecx, str.SHA1
jmp 0x4f1d20
cmp edi, 0xe0
jne 0x4f1d0f
mov ecx, str.SHA_224
jmp 0x4f1d20
cmp edi, 0x100
jne 0x4f2735
mov ecx, str.SHA_256
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x30]
push eax
push ecx
push edx
call fcn.0047ef80
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x28], ebx
mov esi, ebx
test ebx, ebx
je 0x4f26b3
push ebx
call fcn.00494e50
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jle 0x4f26b3
mov ecx, dword [esp + 0xcc]
lea ebp, [eax*8]
test edi, edi
cmovne ebp, edi
mov ebx, ebp
shr ebx, 3
cmp ecx, ebp
jbe 0x4f26a5
mov eax, dword [esp + 0xc8]
cmp eax, 1
jne 0x4f1dce
cmp ecx, 0x400
jne 0x4f1d95
cmp ebp, 0xa0
jne 0x4f1dad
jmp 0x4f1e0e
cmp ecx, 0x800
jne 0x4f1dad
cmp ebp, 0xe0
je 0x4f1e0e
cmp ebp, 0x100
je 0x4f1e0e
call fcn.00486d10
push 0x5fed84
push 0x4d
push str.crypto_ffc_ffc_params_generate.c
call fcn.00486e10
push 0
push 0x7f
push 5
jmp 0x4f269d
test eax, eax
jne 0x4f26a5
cmp ecx, 0xc00
jb 0x4f1de6
cmp ebp, 0x100
jae 0x4f1e0e
cmp ecx, 0x800
jb 0x4f1df6
cmp ebp, 0xe0
jae 0x4f1e0e
cmp ecx, 0x400
jb 0x4f2681
cmp ebp, 0xa0
jb 0x4f2681
call fcn.0047eef0
mov edi, dword [esp + 0x28]
mov esi, edi
mov dword [esp + 0x70], eax
test eax, eax
je 0x4f26b3
push dword [esp + 0x44]
call fcn.0048aef0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x4f1ecd
mov esi, eax
push esi
call fcn.0048afc0
push esi
call fcn.0048ad60
push esi
mov dword [esp + 0x54], eax
call fcn.0048ad60
push esi
mov dword [esp + 0x54], eax
call fcn.0048ad60
push esi
mov dword [esp + 0x70], eax
call fcn.0048ad60
push esi
mov dword [esp + 0x68], eax
call fcn.0048ad60
add esp, 0x18
mov dword [esp + 0x54], eax
mov esi, edi
test eax, eax
je 0x4f1ecd
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
test eax, eax
cmove eax, dword [esp + 0x38]
xor esi, esi
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x10]
test eax, eax
cmovne esi, eax
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x24], esi
je 0x4f1ed6
mov esi, dword [esp + 0x18]
xor ecx, ecx
cmp dword [esi + 4], ecx
sete cl
xor eax, eax
cmp dword [esi], eax
sete al
cmp eax, ecx
je 0x4f1f1e
mov eax, dword [esp + 0x1c]
mov esi, edi
mov dword [eax], 0x800
mov ebx, dword [esp + 0x10]
jmp 0x4f26b5
mov edx, dword [esp + 0x40]
test dl, 1
je 0x4f1efe
test esi, esi
je 0x4f1ee9
cmp dword [ecx + 0x18], 0
jge 0x4f1efe
mov eax, dword [esp + 0x1c]
mov esi, edi
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x4f26b5
test dl, 2
je 0x4f1f24
cmp dword [ecx + 8], 0
jne 0x4f1f24
mov eax, dword [esp + 0x1c]
mov esi, edi
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x400
jmp 0x4f26b5
mov edx, dword [esp + 0x40]
mov ecx, esi
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
test eax, eax
je 0x4f1f47
test dl, 1
jne 0x4f1f47
mov ebx, dword [ecx + 4]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
jmp 0x4f2303
mov esi, dword [esp + 0x10]
push esi
call fcn.0048ad60
push esi
mov dword [esp + 0x28], eax
call fcn.0048ad60
add esp, 8
mov dword [esp + 0x2c], eax
mov esi, edi
test eax, eax
je 0x4f1ecd
mov ecx, dword [esp + 0x34]
lea eax, [ecx*8]
cmp eax, ebp
jae 0x4f1f8e
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x100
jmp 0x4f26b5
push 0x283
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.004867f0
mov ebp, dword [esp + 0x34]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x14], edi
mov esi, ebp
test edi, edi
je 0x4f1fcc
cmp dword [esp + 0x24], 0
jne 0x4f1ff7
cmp dword [esp + 0xc4], 0
jne 0x4f1fd5
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x200
mov ebx, dword [esp + 0x10]
jmp 0x4f26b7
push 0x28e
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x3c]
call fcn.004867f0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x24], ecx
mov esi, ebp
test ecx, ecx
je 0x4f1fcc
cmp dword [esp + 0xc4], 0
mov edx, dword [esp + 0xcc]
mov edi, dword [esp + 0x18]
lea ecx, [edx*4 - 1]
mov dword [esp + 0x58], ecx
jne 0x4f203b
mov eax, dword [edi + 0x18]
cmp eax, ecx
jle 0x4f2037
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x1000
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x4f26b7
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
mov esi, ebp
lea ecx, [eax*8]
lea eax, [edx - 1]
xor edx, edx
div ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xcc]
dec eax
push eax
call fcn.0048a7e0
push eax
push dword [esp + 0x58]
call fcn.004ba480
add esp, 0xc
test eax, eax
je 0x4f202a
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
nop dword [eax]
push ebp
call fcn.00494e50
push dword [esp + 0x14]
mov edi, eax
call fcn.0048b0c0
push dword [esp + 0x44]
mov dword [esp + 0x5c], eax
push 0
push dword [esp + 0x40]
call fcn.005269e0
add esp, 0x14
test eax, eax
je 0x4f2028
nop
inc dword [esp + 0x3c]
cmp esi, dword [esp + 0x28]
je 0x4f20d5
push 0
push dword [esp + 0x38]
push esi
push dword [esp + 0x5c]
call fcn.004e7ec0
add esp, 0x10
test eax, eax
js 0x4f2028
push 0
push ebp
push 0
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x44]
push esi
call fcn.0047e580
add esp, 0x18
test eax, eax
je 0x4f2028
lea esi, [esp + 0x74]
cmp edi, ebx
jle 0x4f2107
mov eax, edi
sub eax, ebx
add esi, eax
cmp edi, ebx
jge 0x4f211f
mov eax, ebx
sub eax, edi
push eax
lea eax, [esp + 0x78]
add eax, edi
push 0
push eax
call fcn.0059f880
add esp, 0xc
push dword [esp + 0x2c]
or byte [esi], 0x80
or byte [esi + ebx - 1], 1
push ebx
push esi
call fcn.00489a40
add esp, 0xc
test eax, eax
je 0x4f2028
push dword [esp + 0x30]
mov esi, dword [esp + 0x30]
push dword [esp + 0x14]
push esi
call fcn.00526a30
add esp, 0xc
test eax, eax
jg 0x4f2194
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
je 0x4f226d
test eax, eax
jne 0x4f2028
push dword [esp + 0x3c]
push eax
push dword [esp + 0x38]
call fcn.005269e0
add esp, 0xc
test eax, eax
jne 0x4f20b0
mov ebx, dword [esp + 0x10]
mov esi, ebp
mov edi, dword [esp + 0x14]
jmp 0x4f26b7
cmp dword [esp + 0xc4], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
jne 0x4f21be
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push esi
call fcn.00489cc0
add esp, 8
test eax, eax
jne 0x4f2283
mov esi, dword [esp + 0x30]
push 0
push 2
push esi
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x4f2028
push 0
push 3
push esi
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x4f2028
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
push edi
push esi
push dword [esp + 0x1c]
call fcn.0059ed80
push dword [esp + 0x28]
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x44]
push dword [esp + 0xe4]
push dword [esp + 0x3c]
push dword [esp + 0x4c]
push edi
push dword [esp + 0x3c]
mov edi, dword [esp + 0x3c]
push dword [esp + 0x64]
push dword [esp + 0x88]
push ebp
push edi
call fcn.004f0fb0
add esp, 0x3c
test eax, eax
jg 0x4f229c
js 0x4f2028
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
cmp esi, eax
jne 0x4f2080
mov eax, dword [esp + 0x1c]
mov ebx, edi
mov edi, dword [esp + 0x14]
mov esi, ebp
mov dword [eax], 1
jmp 0x4f26b7
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
or dword [eax], 0x10
jmp 0x4f26b7
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [eax], 0x4000
jmp 0x4f26b7
push 1
push 2
push dword [esp + 0x38]
mov esi, ebp
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x4f202a
cmp dword [esp + 0xc4], 0
jne 0x4f22f1
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x60], eax
jne 0x4f2028
mov eax, dword [esp + 0x18]
push dword [eax]
push dword [esp + 0x24]
call fcn.00489cc0
add esp, 8
test eax, eax
je 0x4f22f1
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x4f26b7
mov eax, dword [esp + 0x40]
and al, 3
cmp al, 1
je 0x4f264b
mov ebx, dword [esp + 0x2c]
call fcn.004b7660
mov dword [esp + 0x4c], eax
mov esi, ebp
test eax, eax
je 0x4f202a
push edi
push dword [esp + 0x24]
push eax
call fcn.004b76f0
add esp, 0xc
test eax, eax
je 0x4f202a
test byte [esp + 0x40], 2
je 0x4f235c
push dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x58]
push dword [eax + 8]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x60]
push edi
call fcn.0050ccd0
add esp, 0x1c
test eax, eax
je 0x4f202a
call fcn.0048a7e0
mov esi, dword [esp + 0x44]
push eax
push dword [esp + 0x24]
push esi
call fcn.0048b160
add esp, 0xc
test eax, eax
je 0x4f2028
push edi
push ebx
push esi
push 0
push dword [esp + 0x6c]
call fcn.004b9490
add esp, 0x14
test eax, eax
je 0x4f2028
mov edi, dword [esp + 0x24]
test edi, edi
je 0x4f2546
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x50], eax
cmp eax, 0xffffffff
je 0x4f2546
push ebp
mov dword [esp + 0x70], 1
mov dword [esp + 0x3c], 0
call fcn.00494e50
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
jle 0x4f252d
call fcn.0047eef0
mov esi, eax
test esi, esi
je 0x4f252d
mov ebx, 1
nop dword [eax]
mov eax, dword [esp + 0x50]
mov byte [esp + 0x74], al
mov eax, ebx
push 0
sar eax, 8
push ebp
push esi
mov byte [esp + 0x81], al
mov byte [esp + 0x82], bl
call fcn.0047e9f0
add esp, 0xc
test eax, eax
je 0x4f24df
push dword [esp + 0x34]
push edi
push esi
call fcn.0047ea30
add esp, 0xc
test eax, eax
je 0x4f24df
push 4
push str.ggenffc_validate_LN
push esi
call fcn.0047ea30
add esp, 0xc
test eax, eax
je 0x4f24df
push 3
lea eax, [esp + 0x78]
push eax
push esi
call fcn.0047ea30
add esp, 0xc
test eax, eax
je 0x4f24df
push 0
lea eax, [esp + 0x78]
push eax
push esi
call fcn.0047e8c0
add esp, 0xc
test eax, eax
je 0x4f24df
push dword [esp + 0x54]
lea eax, [esp + 0x78]
push dword [esp + 0x48]
push eax
call fcn.00489a40
add esp, 0xc
test eax, eax
je 0x4f24df
push dword [esp + 0x4c]
push dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0x68]
push dword [esp + 0x64]
push dword [esp + 0x5c]
call fcn.004bb2d0
add esp, 0x18
test eax, eax
je 0x4f24df
call fcn.0048a7e0
push eax
push dword [esp + 0x4c]
call fcn.00489cc0
add esp, 8
test eax, eax
jg 0x4f24d7
inc ebx
cmp ebx, 0xffff
jle 0x4f23f0
jmp 0x4f24df
mov dword [esp + 0x38], 1
push esi
call fcn.0047ee60
add esp, 4
cmp dword [esp + 0x38], 0
je 0x4f252d
cmp dword [esp + 0xc4], 0
jne 0x4f2585
mov eax, dword [esp + 0x18]
push dword [eax + 8]
push dword [esp + 0x4c]
call fcn.00489cc0
add esp, 8
test eax, eax
je 0x4f2585
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [eax], 0x8000
jmp 0x4f26b7
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [eax], 0x400
jmp 0x4f26b7
cmp dword [esp + 0xc4], 0
je 0x4f2589
lea eax, [esp + 0x68]
mov esi, ebp
push eax
push dword [esp + 0x48]
push dword [esp + 0x64]
push dword [esp + 0x2c]
push dword [esp + 0x64]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push dword [esp + 0x2c]
call fcn.004f14e0
add esp, 0x20
test eax, eax
je 0x4f202a
jmp 0x4f2589
mov ebx, dword [esp + 0x2c]
push 1
push 3
push dword [esp + 0x38]
mov esi, ebp
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x4f202a
cmp dword [esp + 0xc4], 0
je 0x4f264b
mov esi, dword [esp + 0x18]
mov eax, dword [esi]
cmp dword [esp + 0x20], eax
je 0x4f25d1
push eax
call fcn.00489ff0
push dword [esp + 0x24]
call fcn.00489f10
add esp, 8
mov dword [esi], eax
mov eax, dword [esi + 4]
cmp ebx, eax
je 0x4f25ea
push eax
call fcn.00489ff0
push ebx
call fcn.00489f10
add esp, 8
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x48]
cmp ebx, eax
je 0x4f2607
push eax
call fcn.00489ff0
push ebx
call fcn.00489f10
add esp, 8
mov dword [esi + 8], eax
cmp dword [esi], 0
je 0x4f2028
cmp dword [esi + 4], 0
je 0x4f2028
cmp dword [esi + 8], 0
je 0x4f2028
push dword [esp + 0x60]
mov ebx, dword [esp + 0x1c]
mov esi, ebp
push dword [esp + 0x38]
push edi
push ebx
call fcn.004d8630
add esp, 0x10
test eax, eax
je 0x4f202a
mov eax, dword [esp + 0x68]
mov dword [ebx + 0x24], eax
test byte [esp + 0x40], 2
je 0x4f266d
cmp dword [esp + 0x6c], 0
jne 0x4f266d
mov ebx, dword [esp + 0x10]
mov esi, ebp
mov edi, dword [esp + 0x14]
mov dword [esp + 0x64], 2
jmp 0x4f26b7
mov ebx, dword [esp + 0x10]
mov esi, ebp
mov edi, dword [esp + 0x14]
mov dword [esp + 0x64], 1
jmp 0x4f26b7
call fcn.00486d10
push 0x5fed84
push 0x57
push str.crypto_ffc_ffc_params_generate.c
call fcn.00486e10
push 0
push 0x72
push 0xa
call fcn.00486ec0
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov dword [eax], 0x80
xor ebx, ebx
xor edi, edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax + 0x10]
je 0x4f26d7
push 0x31a
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.00486820
add esp, 0xc
push 0x31b
push str.crypto_ffc_ffc_params_generate.c
push edi
call fcn.00486820
add esp, 0xc
test ebx, ebx
je 0x4f26f7
push ebx
call fcn.0048ac60
add esp, 4
push ebx
call fcn.0048acd0
push dword [esp + 0x50]
call fcn.004b7610
push dword [esp + 0x78]
call fcn.0047ee60
push esi
call fcn.0047efb0
mov ecx, dword [esp + 0xc4]
add esp, 0x10
mov eax, dword [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004797c8
add esp, 0xa8
ret
mov dword [ebp], 0x20
jmp 0x4f26b5