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

Disassembly:
mov eax, 0xec
call fcn.10183130
mov eax, dword [0x1022ee64]
xor eax, esp
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
push ebx
push ebp
mov ebp, dword [esp + 0xf8]
xor ebx, ebx
push esi
mov esi, dword [esp + 0x110]
push edi
xor edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], ebx
cmp dword [esp + 0x108], ebx
jne 0x100a61e5
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x3c], ecx
jmp 0x100a61e9
mov dword [esp + 0x3c], ebx
mov dword [edx], ebx
mov eax, dword [eax + 0x2c]
test eax, eax
jne 0x100a623b
test esi, esi
jne 0x100a620c
cmp dword [esp + 0x110], 0x800
sbb esi, esi
and esi, 0xffffffa0
add esi, 0x100
cmp esi, 0xa0
jne 0x100a621b
mov eax, str.SHA1
jmp 0x100a623b
cmp esi, 0xe0
jne 0x100a622a
mov eax, str.SHA_224
jmp 0x100a623b
cmp esi, 0x100
jne 0x100a6c42
mov eax, str.SHA_256
mov ecx, dword [esp + 0x1c]
push dword [ecx + 0x30]
push eax
push ebp
call fcn.10057b40
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x38], ebx
mov edi, ebx
test ebx, ebx
je 0x100a6bc0
push ebx
call fcn.1005d9d0
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jle 0x100a6bc0
mov ecx, dword [esp + 0x110]
lea ebx, [eax*8]
test esi, esi
cmovne ebx, esi
mov eax, ebx
shr eax, 3
mov dword [esp + 0x60], eax
cmp ecx, ebx
jbe 0x100a6bb2
mov eax, dword [esp + 0x10c]
cmp eax, 1
jne 0x100a62ec
cmp ecx, 0x400
jne 0x100a62b3
cmp ebx, 0xa0
jne 0x100a62cb
jmp 0x100a6330
cmp ecx, 0x800
jne 0x100a62cb
cmp ebx, 0xe0
je 0x100a6330
cmp ebx, 0x100
je 0x100a6330
call fcn.100610e0
push 0x101cb08c
push 0x4d
push str.crypto_ffc_ffc_params_generate.c
call fcn.100611e0
push 0
push 0x7f
push 5
jmp 0x100a6baa
test eax, eax
jne 0x100a6bb2
cmp ecx, 0xc00
jb 0x100a6306
cmp ebx, 0x100
jb 0x100a630e
jmp 0x100a6330
cmp ecx, 0x800
jb 0x100a6318
cmp ebx, 0xe0
jb 0x100a6324
jmp 0x100a6330
cmp ecx, 0x400
jb 0x100a6b8e
cmp ebx, 0xa0
jb 0x100a6b8e
call fcn.10057ab0
mov edi, dword [esp + 0x38]
mov dword [esp + 0x74], eax
test eax, eax
je 0x100a6bc0
push ebp
call fcn.100c1bd0
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
mov ebp, edi
test esi, esi
je 0x100a6bc2
push esi
call fcn.100c1ca0
push esi
call fcn.100c1a50
push esi
mov dword [esp + 0x4c], eax
call fcn.100c1a50
push esi
mov dword [esp + 0x78], eax
call fcn.100c1a50
push esi
mov dword [esp + 0x4c], eax
call fcn.100c1a50
push esi
mov dword [esp + 0x74], eax
call fcn.100c1a50
add esp, 0x18
mov dword [esp + 0x44], eax
test eax, eax
je 0x100a6bc2
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
test eax, eax
cmove eax, dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x10]
test eax, eax
cmovne esi, eax
cmp dword [esp + 0x108], 0
mov dword [esp + 0x24], esi
je 0x100a6414
xor ecx, ecx
cmp dword [edi + 4], ecx
sete cl
xor eax, eax
cmp dword [edi], eax
sete al
cmp eax, ecx
je 0x100a63f3
mov eax, dword [esp + 0x18]
mov dword [eax], 0x800
mov edi, ebp
mov esi, dword [esp + 0x10]
jmp 0x100a6bc2
mov eax, dword [esp + 0x3c]
and eax, 1
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x100a645e
test eax, eax
jne 0x100a645e
mov ebx, dword [edi + 4]
mov dword [esp + 0x2c], ebx
jmp 0x100a680c
mov ecx, dword [esp + 0x3c]
mov eax, ecx
and eax, 1
je 0x100a643e
test esi, esi
je 0x100a6429
cmp dword [edi + 0x18], 0
jge 0x100a643e
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x100a6bc2
test cl, 2
je 0x100a63fa
cmp dword [edi + 8], 0
jne 0x100a63fa
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x400
jmp 0x100a6bc2
mov edi, dword [esp + 0x10]
push edi
call fcn.100c1a50
push edi
mov dword [esp + 0x28], eax
call fcn.100c1a50
add esp, 8
mov dword [esp + 0x2c], eax
mov edi, ebp
test eax, eax
je 0x100a63ea
mov ecx, dword [esp + 0x34]
lea eax, [ecx*8]
cmp eax, ebx
jae 0x100a64a5
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x100
jmp 0x100a6bc2
push 0x283
push str.crypto_ffc_ffc_params_generate.c
push ecx
call fcn.10059020
add esp, 0xc
mov dword [esp + 0x48], eax
mov edi, ebp
test eax, eax
je 0x100a63ea
test esi, esi
jne 0x100a650c
cmp dword [esp + 0x108], esi
jne 0x100a64e6
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [eax], 0x200
jmp 0x100a6bc2
push 0x28e
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x3c]
call fcn.10059020
mov esi, eax
add esp, 0xc
mov dword [esp + 0x24], esi
mov edi, ebp
test esi, esi
je 0x100a63ea
cmp dword [esp + 0x108], 0
mov ecx, dword [esp + 0x110]
lea ebx, [ecx*4 - 1]
mov dword [esp + 0x50], ebx
jne 0x100a654c
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x18]
cmp eax, ebx
jle 0x100a6548
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x1000
jmp 0x100a6bc2
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
lea esi, [ecx - 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.1006bb30
push eax
push dword [esp + 0x64]
call fcn.1006c420
add esp, 0xc
test eax, eax
je 0x100a63ea
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
nop dword [eax]
mov eax, dword [eax + 0x10]
mov esi, dword [esp + 0x4c]
push ebp
mov dword [esp + 0x2c], eax
call fcn.1005d9d0
push dword [esp + 0x14]
mov edi, eax
call fcn.100c1da0
push esi
push 0
push dword [esp + 0x40]
mov dword [esp + 0x74], eax
call fcn.100eb1f0
add esp, 0x14
test eax, eax
je 0x100a63e8
inc esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0x28]
je 0x100a65f5
push 0
push dword [esp + 0x38]
push esi
push dword [esp + 0x6c]
call fcn.1008a2b0
add esp, 0x10
test eax, eax
jle 0x100a63e8
push 0
push ebp
push 0
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x44]
push esi
call fcn.10057010
add esp, 0x18
test eax, eax
je 0x100a63e8
lea esi, [esp + 0xb8]
cmp edi, ebx
jle 0x100a662a
mov eax, edi
sub eax, ebx
add esi, eax
jmp 0x100a6645
jge 0x100a6645
mov eax, ebx
sub eax, edi
push eax
lea eax, [esp + 0xbc]
add eax, edi
push 0
push eax
call fcn.10184ad0
add esp, 0xc
push dword [esp + 0x2c]
or byte [esi], 0x80
or byte [esi + ebx - 1], 1
push ebx
push esi
call fcn.1006ae60
add esp, 0xc
test eax, eax
je 0x100a63e8
push dword [esp + 0x30]
mov esi, dword [esp + 0x30]
push dword [esp + 0x14]
push esi
call fcn.100eb240
add esp, 0xc
test eax, eax
jg 0x100a66b7
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x24], ecx
je 0x100a6782
test eax, eax
jne 0x100a63e8
mov esi, dword [esp + 0x5c]
push esi
push eax
push dword [esp + 0x38]
call fcn.100eb1f0
add esp, 0xc
test eax, eax
jne 0x100a65c7
mov esi, dword [esp + 0x10]
mov edi, ebp
jmp 0x100a6bc2
cmp dword [esp + 0x108], 0
jne 0x100a66d9
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push esi
call fcn.1006b120
add esp, 8
test eax, eax
jne 0x100a6794
mov esi, dword [esp + 0x30]
push 0
push 2
push esi
call fcn.100eb1f0
add esp, 0xc
test eax, eax
je 0x100a63e8
push 0
push 3
push esi
call fcn.100eb1f0
add esp, 0xc
test eax, eax
je 0x100a63e8
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
push edi
push esi
push dword [esp + 0x50]
call fcn.10184550
push dword [esp + 0x24]
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x44]
push dword [esp + 0x128]
push dword [esp + 0x3c]
push dword [esp + 0x4c]
push edi
push dword [esp + 0x70]
push dword [esp + 0x90]
push dword [esp + 0x80]
push ebp
push dword [esp + 0x48]
call fcn.100a5510
add esp, 0x3c
test eax, eax
jg 0x100a67a9
js 0x100a63e8
mov eax, dword [esp + 0x1c]
cmp esi, dword [eax + 0x10]
jne 0x100a6590
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 1
jmp 0x100a6bc2
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
or dword [eax], 0x10
jmp 0x100a6bc2
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov dword [eax], 0x4000
jmp 0x100a6bc2
push 1
push 2
push dword [esp + 0x38]
mov edi, ebp
call fcn.100eb1f0
add esp, 0xc
test eax, eax
je 0x100a63ea
cmp dword [esp + 0x108], 0
jne 0x100a67fa
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x54], eax
jne 0x100a63e8
mov eax, dword [esp + 0x1c]
push dword [eax]
push dword [esp + 0x24]
call fcn.1006b120
add esp, 8
test eax, eax
je 0x100a67fa
mov esi, dword [esp + 0x10]
jmp 0x100a6bc2
mov eax, dword [esp + 0x3c]
and al, 3
cmp al, 1
je 0x100a6b58
mov ebx, dword [esp + 0x2c]
call fcn.10094d80
mov dword [esp + 0x14], eax
mov edi, ebp
test eax, eax
je 0x100a6a49
push dword [esp + 0x10]
push dword [esp + 0x24]
push eax
call fcn.10094e10
add esp, 0xc
test eax, eax
je 0x100a6a49
test byte [esp + 0x3c], 2
je 0x100a686b
push dword [esp + 0x18]
mov eax, dword [esp + 0x20]
push dword [esp + 0x48]
push dword [eax + 8]
push ebx
push dword [esp + 0x30]
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.100ec350
add esp, 0x1c
test eax, eax
je 0x100a6a49
call fcn.1006bb30
mov edi, dword [esp + 0x68]
push eax
push dword [esp + 0x24]
push edi
call fcn.100e2200
add esp, 0xc
test eax, eax
je 0x100a6a47
push dword [esp + 0x10]
push ebx
push edi
push 0
push dword [esp + 0x48]
call fcn.100dab60
add esp, 0x14
test eax, eax
je 0x100a6a47
test esi, esi
je 0x100a6a56
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x64], eax
cmp eax, 0xffffffff
je 0x100a6a56
push ebp
mov dword [esp + 0x74], 1
mov dword [esp + 0x2c], 0
call fcn.1005d9d0
mov edi, eax
add esp, 4
test edi, edi
jle 0x100a6a3d
call fcn.10057ab0
mov esi, eax
test esi, esi
je 0x100a6a3d
mov ebx, 1
nop dword [eax]
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.10057480
add esp, 0xc
test eax, eax
je 0x100a69ef
push dword [esp + 0x34]
push dword [esp + 0x28]
push esi
call fcn.100574c0
add esp, 0xc
test eax, eax
je 0x100a69ef
push 4
push str.ggenffc_validate_LN
push esi
call fcn.100574c0
add esp, 0xc
test eax, eax
je 0x100a69ef
push 3
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.100574c0
add esp, 0xc
test eax, eax
je 0x100a69ef
push 0
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.10057350
add esp, 0xc
test eax, eax
je 0x100a69ef
push dword [esp + 0x44]
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.1006ae60
add esp, 0xc
test eax, eax
je 0x100a69ef
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0x44]
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.100e24d0
add esp, 0x18
test eax, eax
je 0x100a69ef
call fcn.1006bb30
push eax
push dword [esp + 0x44]
call fcn.1006b120
add esp, 8
test eax, eax
jg 0x100a69e7
inc ebx
cmp ebx, 0xffff
jle 0x100a6900
jmp 0x100a69ef
mov dword [esp + 0x28], 1
push esi
call fcn.10057a20
add esp, 4
cmp dword [esp + 0x28], 0
je 0x100a6a3d
cmp dword [esp + 0x108], 0
jne 0x100a6a91
mov eax, dword [esp + 0x1c]
push dword [eax + 8]
push dword [esp + 0x44]
call fcn.1006b120
add esp, 8
test eax, eax
je 0x100a6a91
mov eax, dword [esp + 0x18]
mov edi, ebp
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [eax], 0x8000
jmp 0x100a6bc4
mov eax, dword [esp + 0x18]
mov dword [eax], 0x400
mov edi, ebp
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
jmp 0x100a6bc4
cmp dword [esp + 0x108], 0
je 0x100a6a99
lea eax, [esp + 0x6c]
mov edi, ebp
push eax
push dword [esp + 0x6c]
push dword [esp + 0x40]
push dword [esp + 0x2c]
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.100a5a70
add esp, 0x20
test eax, eax
je 0x100a6a49
jmp 0x100a6a99
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
push 1
push 3
push dword [esp + 0x38]
mov edi, ebp
call fcn.100eb1f0
add esp, 0xc
test eax, eax
je 0x100a6a49
cmp dword [esp + 0x108], 0
je 0x100a6b58
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
cmp dword [esp + 0x20], eax
je 0x100a6add
push eax
call fcn.1006b430
push dword [esp + 0x24]
call fcn.1006b350
add esp, 8
mov dword [edi], eax
mov eax, dword [edi + 4]
cmp ebx, eax
je 0x100a6af6
push eax
call fcn.1006b430
push ebx
call fcn.1006b350
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [edi + 8]
mov ebx, dword [esp + 0x40]
cmp ebx, eax
je 0x100a6b13
push eax
call fcn.1006b430
push ebx
call fcn.1006b350
add esp, 8
mov dword [edi + 8], eax
cmp dword [edi], 0
je 0x100a6a47
cmp dword [edi + 4], 0
je 0x100a6a47
test eax, eax
je 0x100a6a47
push dword [esp + 0x54]
mov edi, ebp
push dword [esp + 0x38]
push esi
push dword [esp + 0x28]
call fcn.100a52a0
add esp, 0x10
test eax, eax
je 0x100a6a49
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x24], ecx
test byte [esp + 0x3c], 2
je 0x100a6b7a
cmp dword [esp + 0x70], 0
jne 0x100a6b7a
mov esi, dword [esp + 0x10]
mov edi, ebp
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], 2
jmp 0x100a6bc4
mov esi, dword [esp + 0x10]
mov edi, ebp
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], 1
jmp 0x100a6bc4
call fcn.100610e0
push 0x101cb08c
push 0x57
push str.crypto_ffc_ffc_params_generate.c
call fcn.100611e0
push 0
push 0x72
push 0xa
call fcn.10061290
add esp, 0x18
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov dword [eax], 0x80
xor esi, esi
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp eax, dword [ecx + 0x10]
je 0x100a6be4
push 0x31a
push str.crypto_ffc_ffc_params_generate.c
push eax
call fcn.10059060
add esp, 0xc
push 0x31b
push str.crypto_ffc_ffc_params_generate.c
push dword [esp + 0x50]
call fcn.10059060
add esp, 0xc
test esi, esi
je 0x100a6c07
push esi
call fcn.100c1950
add esp, 4
push esi
call fcn.100c19c0
push ebx
call fcn.10094d30
push dword [esp + 0x7c]
call fcn.10057a20
push edi
call fcn.10057b70
mov ecx, dword [esp + 0x108]
add esp, 0x10
mov eax, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10182c97
add esp, 0xec
ret
mov dword [edx], 0x20
xor esi, esi
jmp 0x100a6bc4