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

Disassembly:
mov eax, 0xec
call fcn.00655180
mov eax, dword [0x716f80]
xor eax, esp
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0x10c]
push ebx
push ebp
mov ebp, dword [esp + 0x110]
xor ebx, ebx
push esi
mov esi, dword [esp + 0x110]
push edi
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x70], ebx
cmp dword [esp + 0x108], ebx
jne 0x577439
mov edx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
jmp 0x57743d
mov dword [esp + 0x38], ebx
mov dword [ebp], ebx
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x577490
test esi, esi
jne 0x577461
cmp dword [esp + 0x110], 0x800
sbb esi, esi
and esi, 0xffffffa0
add esi, 0x100
cmp esi, 0xa0
jne 0x577470
mov eax, str.SHA1
jmp 0x577490
cmp esi, 0xe0
jne 0x57747f
mov eax, str.SHA_224
jmp 0x577490
cmp esi, 0x100
jne 0x577e9e
mov eax, str.SHA_256
mov edx, dword [esp + 0x18]
push dword [edx + 0x30]
push eax
push ecx
call fcn.00529270
mov ebp, eax
add esp, 0xc
mov edi, ebp
test ebp, ebp
je 0x577e1e
push ebp
call fcn.005139d0
add esp, 4
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x577e1e
test esi, esi
jne 0x5774cd
lea esi, [eax*8]
mov ecx, dword [esp + 0x110]
mov ebx, esi
shr ebx, 3
cmp ecx, esi
jbe 0x577e10
mov eax, dword [esp + 0x10c]
cmp eax, 1
jne 0x577538
cmp ecx, 0x400
jne 0x5774ff
cmp esi, 0xa0
jne 0x577517
jmp 0x57757c
cmp ecx, 0x800
jne 0x577517
cmp esi, 0xe0
je 0x57757c
cmp esi, 0x100
je 0x57757c
call fcn.00514490
push 0x6c2fd8
push 0x4d
push str.crypto_ffc_ffc_params_generate.c
call fcn.00514590
push 0
push 0x7f
push 5
jmp 0x577e08
test eax, eax
jne 0x577e10
cmp ecx, 0xc00
jb 0x577552
cmp esi, 0x100
jb 0x57755a
jmp 0x57757c
cmp ecx, 0x800
jb 0x577564
cmp esi, 0xe0
jb 0x577570
jmp 0x57757c
cmp ecx, 0x400
jb 0x577dec
cmp esi, 0xa0
jb 0x577dec
call fcn.005291e0
mov dword [esp + 0x70], eax
mov edi, ebp
test eax, eax
je 0x577e1c
push dword [esp + 0x50]
call fcn.00560fb0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x577637
mov edi, eax
push edi
call fcn.00561050
push edi
call fcn.00560e60
push edi
mov dword [esp + 0x4c], eax
call fcn.00560e60
push edi
mov dword [esp + 0x60], eax
call fcn.00560e60
push edi
mov dword [esp + 0x6c], eax
call fcn.00560e60
push edi
mov dword [esp + 0x4c], eax
call fcn.00560e60
add esp, 0x18
mov dword [esp + 0x4c], eax
mov edi, ebp
test eax, eax
je 0x577637
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
test eax, eax
cmove eax, dword [esp + 0x3c]
xor edi, edi
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x10]
test eax, eax
cmovne edi, eax
cmp dword [esp + 0x108], 0
mov dword [esp + 0x20], edi
je 0x577667
mov edi, dword [esp + 0x18]
xor ecx, ecx
cmp dword [edi + 4], ecx
sete cl
xor eax, eax
cmp dword [edi], eax
sete al
cmp eax, ecx
je 0x577640
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov dword [eax], 0x800
mov ebx, dword [esp + 0x10]
jmp 0x577e1e
mov eax, dword [esp + 0x38]
mov ecx, edi
and eax, 1
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
test edx, edx
je 0x5776b1
test eax, eax
jne 0x5776b1
mov ebx, dword [ecx + 4]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
jmp 0x577a6b
mov edx, dword [esp + 0x38]
mov eax, edx
and eax, 1
je 0x577691
test edi, edi
je 0x57767c
cmp dword [ecx + 0x18], 0
jge 0x577691
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x577e1e
test dl, 2
je 0x577649
cmp dword [ecx + 8], 0
jne 0x577649
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x400
jmp 0x577e1e
mov edi, dword [esp + 0x10]
push edi
call fcn.00560e60
push edi
mov dword [esp + 0x2c], eax
call fcn.00560e60
add esp, 8
mov dword [esp + 0x28], eax
mov edi, ebp
test eax, eax
je 0x577637
mov ecx, dword [esp + 0x30]
lea eax, [ecx*8]
cmp eax, esi
jae 0x5776f8
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x40000
jmp 0x577e1e
push 0x283
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.0050e9b0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x14], esi
mov edi, ebp
test esi, esi
je 0x577732
cmp dword [esp + 0x20], 0
jne 0x57775d
cmp dword [esp + 0x108], 0
jne 0x57773b
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x200
mov ebx, dword [esp + 0x10]
jmp 0x577e20
push 0x28e
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x38]
call fcn.0050e9b0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x20], ecx
mov edi, ebp
test ecx, ecx
je 0x577732
cmp dword [esp + 0x108], 0
mov edx, dword [esp + 0x110]
lea ecx, [edx*4 - 1]
mov dword [esp + 0x54], ecx
jne 0x57779d
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x18]
cmp eax, ecx
jle 0x577799
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov dword [eax], 0x1000
jmp 0x577e20
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
lea esi, [edx - 1]
xor edx, edx
mov edi, ebp
push esi
lea ecx, [eax*8]
mov eax, esi
div ecx
mov dword [esp + 0x68], eax
call fcn.0051f960
push eax
push dword [esp + 0x3c]
call fcn.00525e40
add esp, 0xc
test eax, eax
je 0x5779ff
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
nop word [eax + eax]
mov eax, dword [ecx + 0x10]
push ebp
mov dword [esp + 0x38], eax
call fcn.005139d0
push dword [esp + 0x14]
mov edi, eax
call fcn.00561130
push dword [esp + 0x50]
mov dword [esp + 0x80], eax
push 0
push dword [esp + 0x3c]
call fcn.0060dfa0
add esp, 0x14
test eax, eax
je 0x5779fd
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], eax
cmp esi, dword [esp + 0x34]
je 0x57784a
push 0
push dword [esp + 0x34]
push esi
push dword [esp + 0x80]
call fcn.00514990
add esp, 0x10
test eax, eax
jle 0x5779fd
push 0
push ebp
push 0
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x40]
push esi
call fcn.00528600
add esp, 0x18
test eax, eax
je 0x5779fd
lea esi, [esp + 0xb8]
cmp edi, ebx
jle 0x57787f
mov eax, edi
sub eax, ebx
add esi, eax
jmp 0x57789a
jge 0x57789a
mov eax, ebx
sub eax, edi
push eax
lea eax, [esp + 0xbc]
add eax, edi
push 0
push eax
call fcn.00656e20
add esp, 0xc
push dword [esp + 0x28]
or byte [esi], 0x80
or byte [esi + ebx - 1], 1
push ebx
push esi
call fcn.0051ee00
add esp, 0xc
test eax, eax
je 0x5779fd
push dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
push dword [esp + 0x14]
push esi
call fcn.0060dff0
add esp, 0xc
test eax, eax
jg 0x577912
mov esi, dword [esp + 0x20]
cmp esi, dword [esp + 0x34]
je 0x5779dd
test eax, eax
jne 0x5779fd
push dword [esp + 0x3c]
push eax
push dword [esp + 0x34]
call fcn.0060dfa0
add esp, 0xc
test eax, eax
je 0x5779fd
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], eax
jmp 0x57782c
cmp dword [esp + 0x108], 0
jne 0x577934
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push esi
call fcn.0051efa0
add esp, 8
test eax, eax
jne 0x5779f3
mov esi, dword [esp + 0x2c]
push 0
push 2
push esi
call fcn.0060dfa0
add esp, 0xc
test eax, eax
je 0x5779fd
push 0
push 3
push esi
call fcn.0060dfa0
add esp, 0xc
test eax, eax
je 0x5779fd
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
push edi
push esi
push dword [esp + 0x1c]
call fcn.006568a0
push dword [esp + 0x28]
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x128]
push dword [esp + 0x40]
push dword [esp + 0x48]
push edi
push dword [esp + 0x3c]
push dword [esp + 0x90]
push dword [esp + 0x84]
push ebp
push dword [esp + 0x48]
call fcn.005766f0
add esp, 0x3c
test eax, eax
jg 0x577a0c
js 0x5779fd
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x10]
jne 0x5777e0
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [eax], 1
jmp 0x577e20
mov eax, dword [esp + 0x1c]
or dword [eax], 0x10
mov ebx, dword [esp + 0x10]
mov edi, ebp
mov esi, dword [esp + 0x14]
jmp 0x577e20
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4000
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x577e20
push 1
push 2
push dword [esp + 0x34]
mov edi, ebp
call fcn.0060dfa0
add esp, 0xc
test eax, eax
je 0x5779ff
cmp dword [esp + 0x108], 0
jne 0x577a59
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x5c], eax
jne 0x5779fd
mov eax, dword [esp + 0x18]
push dword [eax]
push dword [esp + 0x28]
call fcn.0051efa0
add esp, 8
test eax, eax
je 0x577a59
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x577e20
mov eax, dword [esp + 0x38]
and al, 3
cmp al, 1
je 0x577db6
mov ebx, dword [esp + 0x28]
call fcn.00539870
mov edx, eax
mov edi, ebp
mov dword [esp + 0x44], edx
test edx, edx
je 0x5779ff
push dword [esp + 0x10]
push dword [esp + 0x28]
push edx
call fcn.005398d0
add esp, 0xc
test eax, eax
je 0x5779ff
test byte [esp + 0x38], 2
je 0x577ac8
push dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x50]
push dword [eax + 8]
push ebx
push dword [esp + 0x34]
push dword [esp + 0x58]
push dword [esp + 0x28]
call fcn.005fe390
add esp, 0x1c
test eax, eax
je 0x5779ff
call fcn.0051f960
mov edi, dword [esp + 0x50]
push eax
push dword [esp + 0x28]
push edi
call fcn.005dbc50
add esp, 0xc
test eax, eax
je 0x5779fd
push dword [esp + 0x10]
push ebx
push edi
push 0
push dword [esp + 0x68]
call fcn.00561140
add esp, 0x14
test eax, eax
je 0x5779fd
test esi, esi
je 0x577cac
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x64], eax
cmp eax, 0xffffffff
je 0x577cac
push ebp
mov dword [esp + 0x70], 1
mov dword [esp + 0x38], 0
call fcn.005139d0
mov edi, eax
add esp, 4
test edi, edi
jle 0x577c93
call fcn.005291e0
mov esi, eax
test esi, esi
je 0x577c93
mov ebx, 1
mov eax, dword [esp + 0x64]
mov byte [esp + 0x78], al
mov eax, ebx
push 0
sar eax, 8
push ebp
push esi
mov byte [esp + 0x85], al
mov byte [esp + 0x86], bl
call fcn.00528b70
add esp, 0xc
test eax, eax
je 0x577c45
push dword [esp + 0x30]
push dword [esp + 0x24]
push esi
call fcn.00528bb0
add esp, 0xc
test eax, eax
je 0x577c45
push 4
push str.ggenffc_validate_LN
push esi
call fcn.00528bb0
add esp, 0xc
test eax, eax
je 0x577c45
push 3
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.00528bb0
add esp, 0xc
test eax, eax
je 0x577c45
push 0
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.00528980
add esp, 0xc
test eax, eax
je 0x577c45
push dword [esp + 0x4c]
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.0051ee00
add esp, 0xc
test eax, eax
je 0x577c45
push dword [esp + 0x44]
push dword [esp + 0x14]
push dword [esp + 0x2c]
push dword [esp + 0x64]
push dword [esp + 0x5c]
push dword [esp + 0x54]
call fcn.005f9e70
add esp, 0x18
test eax, eax
je 0x577c45
call fcn.0051f960
push eax
push dword [esp + 0x44]
call fcn.0051efa0
add esp, 8
test eax, eax
jg 0x577c3d
inc ebx
cmp ebx, 0xffff
jle 0x577b56
jmp 0x577c45
mov dword [esp + 0x34], 1
push esi
call fcn.00529150
add esp, 4
cmp dword [esp + 0x34], 0
je 0x577c93
cmp dword [esp + 0x108], 0
jne 0x577ceb
mov eax, dword [esp + 0x18]
push dword [eax + 8]
push dword [esp + 0x44]
call fcn.0051efa0
add esp, 8
test eax, eax
je 0x577ceb
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x8000
jmp 0x577e20
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov dword [eax], 0x400
jmp 0x577e20
cmp dword [esp + 0x108], 0
je 0x577cf3
lea eax, [esp + 0x68]
mov edi, ebp
push eax
push dword [esp + 0x54]
push dword [esp + 0x60]
push dword [esp + 0x30]
push dword [esp + 0x5c]
push dword [esp + 0x54]
push dword [esp + 0x5c]
push dword [esp + 0x2c]
call fcn.00576c60
add esp, 0x20
test eax, eax
je 0x5779ff
jmp 0x577cf3
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
push 1
push 3
push dword [esp + 0x34]
mov edi, ebp
call fcn.0060dfa0
add esp, 0xc
test eax, eax
je 0x5779ff
cmp dword [esp + 0x108], 0
je 0x577db6
mov edi, dword [esp + 0x18]
mov eax, dword [edi]
cmp dword [esp + 0x24], eax
je 0x577d3b
push eax
call fcn.0051f2d0
push dword [esp + 0x28]
call fcn.0051f210
add esp, 8
mov dword [edi], eax
mov eax, dword [edi + 4]
cmp ebx, eax
je 0x577d54
push eax
call fcn.0051f2d0
push ebx
call fcn.0051f210
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x40]
cmp ebx, eax
je 0x577d71
push eax
call fcn.0051f2d0
push ebx
call fcn.0051f210
add esp, 8
mov dword [edi + 8], eax
cmp dword [edi], 0
je 0x5779fd
cmp dword [edi + 4], 0
je 0x5779fd
test eax, eax
je 0x5779fd
push dword [esp + 0x5c]
mov edi, ebp
push dword [esp + 0x34]
push esi
push dword [esp + 0x24]
call fcn.00576490
add esp, 0x10
test eax, eax
je 0x5779ff
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x24], eax
test byte [esp + 0x38], 2
je 0x577dd8
cmp dword [esp + 0x6c], 0
jne 0x577dd8
mov ebx, dword [esp + 0x10]
mov edi, ebp
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], 2
jmp 0x577e20
mov ebx, dword [esp + 0x10]
mov edi, ebp
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], 1
jmp 0x577e20
call fcn.00514490
push 0x6c2fd8
push 0x57
push str.crypto_ffc_ffc_params_generate.c
call fcn.00514590
push 0
push 0x72
push 0xa
call fcn.005146a0
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov edi, ebp
mov dword [eax], 0x20000
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x10]
je 0x577e40
push 0x31a
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.0050ea40
add esp, 0xc
push 0x31b
push str.crypto_ffc_ffc_params_generate.c
push esi
call fcn.0050ea40
add esp, 0xc
test ebx, ebx
je 0x577e60
push ebx
call fcn.00560d60
add esp, 4
push ebx
call fcn.00560dd0
push dword [esp + 0x48]
call fcn.00539820
push dword [esp + 0x78]
call fcn.00529150
push edi
call fcn.005292a0
mov ecx, dword [esp + 0x108]
add esp, 0x10
mov eax, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0065469c
add esp, 0xec
ret
mov dword [ebp], 0x20
jmp 0x577e1e