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

Disassembly:
mov eax, 0x5c
call fcn.101fe2f0
mov eax, dword [0x102c5980]
xor eax, esp
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
push ebp
mov ebp, dword [esp + 0x6c]
push esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], eax
push edi
mov edi, dword [esp + 0x6c]
cmp esi, 0x200
jge 0x10159440
call fcn.10050630
push str.rsa_multiprime_keygen
push 0x113
push str.crypto_rsa_rsa_gen.c
call fcn.10050730
push 0
push 0x78
jmp 0x10159d75
test ecx, ecx
jne 0x10159466
call fcn.10050630
push str.rsa_multiprime_keygen
push 0x117
push str.crypto_rsa_rsa_gen.c
call fcn.10050730
push 0
push 0x65
jmp 0x10159d75
push ecx
call fcn.1017ef60
add esp, 4
test eax, eax
jne 0x10159498
call fcn.10050630
push str.rsa_multiprime_keygen
push 0x11c
push str.crypto_rsa_rsa_gen.c
call fcn.10050730
push 0
push 0xb2
jmp 0x10159d75
cmp ebp, 2
jl 0x10159d55
push esi
call fcn.1015d300
add esp, 4
cmp ebp, eax
jg 0x10159d55
call fcn.10056b00
mov dword [esp + 0x14], eax
test eax, eax
je 0x10159d7f
push ebx
call fcn.10056b00
mov dword [esp + 0x10], eax
test eax, eax
je 0x10159cd1
call fcn.10056b00
mov dword [esp + 0x14], eax
test eax, eax
je 0x10159cd1
push dword [edi + 4]
call fcn.100d7c00
mov ebx, eax
add esp, 4
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x10159cd1
push ebx
call fcn.100d7ca0
push ebx
call fcn.100d7ab0
push ebx
mov dword [esp + 0x5c], eax
call fcn.100d7ab0
push ebx
mov dword [esp + 0x48], eax
call fcn.100d7ab0
add esp, 0x10
mov dword [esp + 0x48], eax
test eax, eax
je 0x10159cd1
xor edx, edx
mov eax, esi
div ebp
xor edx, edx
xor ecx, ecx
mov esi, eax
mov eax, dword [esp + 0x74]
div ebp
movd xmm0, esi
pshufd xmm4, xmm0, 0
movd xmm0, edx
pshufd xmm6, xmm0, 0
cmp ebp, 0x10
jb 0x10159636
movaps xmm3, xmmword [0x10269df0]
mov ebx, ebp
movaps xmm5, xmmword [0x10269ba0]
lea ebp, [esp + 0x54]
and ebx, 0xfffffff0
paddd xmm3, xmm4
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
movaps xmm1, xmm6
paddd xmm0, xmm5
movaps xmm2, xmm6
pcmpgtd xmm1, xmm0
movaps xmm0, xmm3
andps xmm0, xmm1
andnps xmm1, xmm4
orps xmm0, xmm1
movaps xmm1, xmm6
movups xmmword [ebp + ecx*4], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm5
pcmpgtd xmm1, xmm0
movaps xmm0, xmm3
andps xmm0, xmm1
andnps xmm1, xmm4
orps xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x64], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm5
pcmpgtd xmm2, xmm0
movaps xmm0, xmm3
andps xmm0, xmm2
movaps xmm1, xmm2
andnps xmm1, xmm4
orps xmm1, xmm0
movd xmm0, eax
movups xmmword [esp + ecx*4 + 0x74], xmm1
pshufd xmm0, xmm0, 0
movaps xmm1, xmm6
paddd xmm0, xmm5
pcmpgtd xmm1, xmm0
movaps xmm0, xmm3
andps xmm0, xmm1
andnps xmm1, xmm4
orps xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x84], xmm0
add ecx, 0x10
cmp ecx, ebx
jl 0x10159580
mov ebp, dword [esp + 0x24]
cmp ecx, ebp
jge 0x10159648
lea eax, [esi + 1]
cmp ecx, edx
jl 0x1015963f
mov eax, esi
mov dword [esp + ecx*4 + 0x54], eax
inc ecx
cmp ecx, ebp
jl 0x10159636
inc dword [edi + 0x78]
cmp dword [edi + 0x14], 0
jne 0x10159661
call fcn.1008b1a0
mov dword [edi + 0x14], eax
test eax, eax
je 0x10159cd1
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x10159678
call fcn.1008b330
mov dword [edi + 0x1c], eax
test eax, eax
je 0x10159cd1
push 4
push eax
call fcn.1008b440
add esp, 8
cmp dword [edi + 0x18], 0
jne 0x10159699
call fcn.1008b1a0
mov dword [edi + 0x18], eax
test eax, eax
je 0x10159cd1
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x101596b0
call fcn.1008b330
mov dword [edi + 0x20], eax
test eax, eax
je 0x10159cd1
push 4
push eax
call fcn.1008b440
mov eax, dword [edi + 0x24]
add esp, 8
test eax, eax
jne 0x101596d2
call fcn.1008b330
mov dword [edi + 0x24], eax
test eax, eax
je 0x10159cd1
push 4
push eax
call fcn.1008b440
add esp, 8
cmp ebp, 2
jle 0x10159742
lea eax, [ebp - 2]
mov dword [edi + 8], 1
push eax
push 0
call fcn.10056b30
mov ebp, eax
add esp, 8
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x10159cd1
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x1015971a
push 0x1015d340
push eax
call fcn.10056bd0
add esp, 8
mov eax, ebp
mov esi, 2
mov dword [edi + 0x4c], eax
call fcn.1015d3a0
mov dword [esp + 0x4c], eax
test eax, eax
je 0x1015977a
push eax
push ebp
call fcn.10056c30
inc esi
add esp, 8
cmp esi, dword [esp + 0x24]
jl 0x10159724
push dword [esp + 0x2c]
push dword [edi + 0x18]
call fcn.1008aea0
add esp, 8
test eax, eax
je 0x10159cd1
mov eax, dword [esp + 0x18]
xor ebp, ebp
nop
mov dword [esp + 0x1c], eax
mov dword [esp + 0x44], 0
test ebp, ebp
je 0x101597b6
cmp ebp, 1
jne 0x1015979e
mov ebx, dword [edi + 0x24]
jmp 0x101597b9
mov ebp, dword [esp + 0x18]
push ebp
call fcn.100569a0
push dword [esp + 0x14]
call fcn.100569a0
push dword [esp + 0x1c]
call fcn.100569a0
add esp, 0xc
jmp 0x10159cf7
lea eax, [ebp - 2]
push eax
push dword [esp + 0x44]
call fcn.10056df0
add esp, 8
mov dword [esp + 0x4c], eax
mov ebx, dword [eax]
jmp 0x101597b9
mov ebx, dword [edi + 0x20]
push 4
push ebx
call fcn.1008b440
mov eax, dword [esp + ebp*4 + 0x5c]
add esp, 8
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x20]
push esi
push dword [esp + 0x40]
push 0
push 0
push 0
push eax
push ebx
call fcn.1015c2a0
add esp, 0x1c
test eax, eax
je 0x10159cc7
xor esi, esi
nop
cmp esi, ebp
jge 0x10159830
test esi, esi
jne 0x101597fd
mov eax, dword [edi + 0x20]
jmp 0x10159819
cmp esi, 1
jne 0x10159807
mov eax, dword [edi + 0x24]
jmp 0x10159819
lea eax, [esi - 2]
push eax
push dword [esp + 0x44]
call fcn.10056df0
add esp, 8
mov eax, dword [eax]
push eax
push ebx
call fcn.1008ace0
add esp, 8
test eax, eax
je 0x1015982a
inc esi
jmp 0x101597f0
mov eax, dword [esp + 0x28]
jmp 0x101597cc
call fcn.1008b640
mov esi, dword [esp + 0x48]
push eax
push ebx
push esi
call fcn.100d7e20
add esp, 0xc
test eax, eax
je 0x10159cc7
call fcn.10051c30
push 4
push esi
call fcn.1008b440
mov esi, dword [esp + 0x28]
push esi
push dword [edi + 0x18]
push dword [esp + 0x58]
push dword [esp + 0x4c]
call fcn.100e1020
add esp, 0x18
test eax, eax
je 0x10159950
mov eax, dword [esp + ebp*4 + 0x54]
add dword [esp + 0x34], eax
cmp ebp, 1
jne 0x1015988f
push esi
push dword [edi + 0x24]
push dword [edi + 0x20]
jmp 0x1015989c
test ebp, ebp
je 0x10159a18
push esi
push ebx
push dword [edi + 0x14]
push dword [esp + 0x44]
call fcn.100d8040
add esp, 0x10
test eax, eax
je 0x10159cc7
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x48]
add eax, 0xfffffffc
push eax
push dword [esp + 0x3c]
push esi
call fcn.1008c4b0
add esp, 0xc
test eax, eax
je 0x10159cc7
push esi
call fcn.1008b030
mov esi, eax
add esp, 4
cmp esi, 9
jb 0x101598ea
cmp esi, 0xf
jbe 0x101599df
push dword [esp + 0x30]
mov eax, dword [esp + ebp*4 + 0x58]
sub dword [esp + 0x38], eax
push 2
push dword [esp + 0x44]
call fcn.1015c210
inc dword [esp + 0x3c]
add esp, 0xc
test eax, eax
je 0x10159cc7
cmp dword [esp + 0x24], 4
jle 0x1015993c
mov eax, dword [esp + 0x28]
cmp esi, 9
jae 0x1015992e
inc eax
inc dword [esp + 0x44]
mov dword [esp + 0x28], eax
jmp 0x101597cc
dec eax
inc dword [esp + 0x44]
mov dword [esp + 0x28], eax
jmp 0x101597cc
cmp dword [esp + 0x44], 4
je 0x101599a5
mov eax, dword [esp + 0x28]
inc dword [esp + 0x44]
jmp 0x101597cc
call fcn.10050e20
test eax, eax
js 0x10159cc7
mov ecx, eax
shr ecx, 0x17
cmp cl, 3
jne 0x10159cc7
and eax, 0x7fffff
cmp eax, 0x6c
jne 0x10159cc7
call fcn.10051b00
push dword [esp + 0x30]
push 2
push dword [esp + 0x44]
call fcn.1015c210
inc dword [esp + 0x3c]
add esp, 0xc
test eax, eax
je 0x10159cc7
mov eax, dword [esp + 0x28]
jmp 0x101597d0
mov ebp, dword [esp + 0x18]
xor eax, eax
push fcn.1008ac70
push ebp
mov dword [esp + 0x3c], eax
call fcn.10056bd0
add esp, 8
call fcn.10056b00
mov dword [esp + 0x18], eax
mov ecx, eax
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x10159cbb
xor ebp, ebp
mov dword [esp + 0x44], ebp
jmp 0x101597b6
cmp ebp, 1
jle 0x101599fe
mov eax, dword [esp + 0x4c]
push dword [edi + 0x14]
push dword [eax + 0xc]
call fcn.1008aea0
add esp, 8
test eax, eax
je 0x10159cc7
push dword [esp + 0x38]
push dword [edi + 0x14]
call fcn.1008aea0
add esp, 8
test eax, eax
je 0x10159cc7
push ebp
jmp 0x10159a1a
push 0
push 3
push dword [esp + 0x44]
call fcn.1015c210
add esp, 0xc
test eax, eax
je 0x10159cc7
push ebx
call fcn.1008af10
mov esi, eax
add esp, 4
test esi, esi
je 0x10159cc7
mov ebx, dword [esp + 0x18]
push ebx
call fcn.10056ba0
push eax
push esi
push ebx
call fcn.100569d0
add esp, 0x10
test eax, eax
je 0x10159cc7
inc ebp
mov eax, ebx
cmp ebp, dword [esp + 0x24]
jl 0x10159760
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.1008ace0
add esp, 8
test eax, eax
jns 0x10159aa9
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
push 0
push ebx
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
call fcn.100567a0
push 1
push eax
push ebx
mov ebp, ebx
call fcn.100569d0
add esp, 0x14
test eax, eax
je 0x10159cd5
mov ebp, ebx
call fcn.1008b640
mov esi, dword [esp + 0x38]
push eax
push dword [edi + 0x20]
push esi
call fcn.100d7e20
add esp, 0xc
test eax, eax
je 0x10159cd5
mov dword [esp + 0x18], ebx
call fcn.1008b640
mov ebp, dword [esp + 0x48]
push eax
push dword [edi + 0x24]
push ebp
call fcn.100d7e20
add esp, 0xc
test eax, eax
je 0x10159cd1
push dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
push ebp
push esi
push dword [esp + 0x5c]
call fcn.100d8040
add esp, 0x10
test eax, eax
je 0x10159cd1
mov ebp, dword [esp + 0x24]
mov esi, 2
cmp ebp, esi
jle 0x10159b67
lea eax, [esi - 2]
push eax
push dword [esp + 0x44]
call fcn.10056df0
mov ebp, eax
call fcn.1008b640
push eax
push dword [ebp]
push dword [ebp + 4]
call fcn.100d7e20
add esp, 0x14
test eax, eax
je 0x10159cc1
push dword [esp + 0x20]
mov eax, dword [esp + 0x54]
push dword [ebp + 4]
push eax
push eax
call fcn.100d8040
add esp, 0x10
test eax, eax
je 0x10159cc1
mov ebp, dword [esp + 0x24]
inc esi
cmp esi, ebp
jl 0x10159b16
mov esi, dword [esp + 0x50]
push 4
push esi
call fcn.1008b440
push dword [esp + 0x28]
mov dword [esp + 0x24], ebx
push esi
push dword [edi + 0x18]
push dword [edi + 0x1c]
call fcn.100e1020
add esp, 0x18
test eax, eax
je 0x10159cd1
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x14]
mov dword [esp + 0x20], ebx
push ebx
push dword [esp + 0x38]
push ebp
push dword [esp + 0x88]
push edi
call fcn.10158c10
add esp, 0x1c
test eax, eax
je 0x10159cd1
push 0
push ebx
call fcn.100567a0
push eax
call fcn.1008ac70
push 0
push ebx
call fcn.100567a0
push eax
call fcn.1008ac70
mov ebp, dword [esp + 0x28]
push 0
push ebp
call fcn.100567a0
push 0
push ebp
mov dword [edi + 0x28], eax
call fcn.100567a0
push 0
push esi
mov dword [edi + 0x2c], eax
call fcn.100567a0
mov ebp, 2
mov dword [edi + 0x30], eax
add esp, 0x30
cmp dword [esp + 0x24], ebp
jle 0x10159c9c
lea eax, [ebp - 2]
push eax
push dword [esp + 0x44]
call fcn.10056df0
mov edi, eax
push 0
push ebx
mov dword [esp + 0x3c], edi
call fcn.100567a0
mov esi, eax
push esi
push dword [edi]
call fcn.1008aea0
push esi
call fcn.1008ac70
push 0
push dword [esp + 0x30]
call fcn.100567a0
mov edi, eax
mov eax, dword [esp + 0x50]
push edi
push dword [eax + 4]
call fcn.1008aea0
push edi
mov esi, eax
call fcn.1008ac70
add esp, 0x30
test esi, esi
je 0x10159cc1
push 0
push dword [esp + 0x18]
call fcn.100567a0
mov edi, eax
mov eax, dword [esp + 0x34]
push edi
push dword [eax + 8]
call fcn.1008aea0
push edi
mov esi, eax
call fcn.1008ac70
add esp, 0x14
test esi, esi
je 0x10159cc1
inc ebp
cmp ebp, dword [esp + 0x24]
jl 0x10159c10
mov esi, dword [esp + 0x14]
push ebx
call fcn.100569a0
push dword [esp + 0x14]
call fcn.100569a0
push esi
call fcn.100569a0
add esp, 0xc
mov esi, 1
jmp 0x10159d2d
push ecx
jmp 0x1015977f
push ebx
jmp 0x1015977f
mov eax, dword [esp + 0x1c]
push eax
jmp 0x1015977f
mov ebp, dword [esp + 0x18]
push ebp
call fcn.100569a0
push dword [esp + 0x14]
call fcn.100569a0
push dword [esp + 0x1c]
call fcn.100569a0
or esi, 0xffffffff
add esp, 0xc
cmp esi, esi
jne 0x10159d2d
call fcn.10050630
push str.rsa_multiprime_keygen
push 0x253
push str.crypto_rsa_rsa_gen.c
call fcn.10050730
push 0
push 0x80003
push 4
call fcn.10050840
mov dword [esp + 0x44], 0
add esp, 0x18
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
push ebx
call fcn.100d79b0
push ebx
call fcn.100d7a20
add esp, 8
mov eax, esi
pop ebx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.101fdd0b
add esp, 0x5c
ret
call fcn.10050630
push str.rsa_multiprime_keygen
push 0x121
push str.crypto_rsa_rsa_gen.c
call fcn.10050730
push 0
push 0xa5
push 4
call fcn.10050840
add esp, 0x18
mov ecx, dword [esp + 0x64]
xor eax, eax
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.101fdd0b
add esp, 0x5c
ret