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

Disassembly:
mov eax, 0x50
call fcn.0047a3d0
mov eax, dword [0x665024]
xor eax, esp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x5c]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], esi
push edi
mov edi, dword [esp + 0x64]
cmp ebx, 0x200
jge 0x502d03
call fcn.00486d10
push 0x606fe0
push 0x5a
push str.crypto_rsa_rsa_gen.c
call fcn.00486e10
push ebp
push 0x78
jmp 0x5035a1
test eax, eax
je 0x502d50
push eax
call fcn.005297d0
add esp, 4
test eax, eax
jne 0x502d50
call fcn.00486d10
push 0x606fe0
push 0x60
push str.crypto_rsa_rsa_gen.c
call fcn.00486e10
push 0
push 0xb2
push 4
call fcn.00486ec0
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.004797c8
add esp, 0x50
ret
cmp dword [esp + 0x14], 2
jl 0x503583
push ebx
call fcn.00492830
add esp, 4
cmp dword [esp + 0x14], eax
jg 0x503583
push dword [edi + 4]
call fcn.0048aef0
mov ebp, eax
add esp, 4
mov dword [esp + 0x10], ebp
test ebp, ebp
je 0x503555
push ebp
call fcn.0048afc0
push ebp
call fcn.0048ad60
push ebp
mov dword [esp + 0x44], eax
call fcn.0048ad60
push ebp
mov dword [esp + 0x28], eax
call fcn.0048ad60
add esp, 0x10
mov dword [esp + 0x30], eax
test eax, eax
je 0x503555
mov eax, ebx
xor ecx, ecx
mov ebx, dword [esp + 0x14]
cdq
idiv ebx
mov ebp, edx
mov edx, eax
movd xmm0, edx
pshufd xmm3, xmm0, 0
movd xmm0, ebp
pshufd xmm5, xmm0, 0
cmp ebx, 0x10
jb 0x502eba
movaps xmm4, xmmword [0x5d82e0]
mov eax, ebx
and eax, reloc.WS2_32.dll_ntohs
jns 0x502df5
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x5f27a0]
sub ebx, eax
paddd xmm2, xmm3
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
movaps xmm1, xmm5
paddd xmm0, xmm4
pcmpgtd xmm1, xmm0
movaps xmm0, xmm2
pand xmm0, xmm1
pandn xmm1, xmm3
por xmm0, xmm1
movaps xmm1, xmm5
movups xmmword [esp + ecx*4 + 0x48], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
pcmpgtd xmm1, xmm0
movaps xmm0, xmm1
pandn xmm1, xmm3
pand xmm0, xmm2
por xmm0, xmm1
movaps xmm1, xmm5
movups xmmword [esp + ecx*4 + 0x58], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
pcmpgtd xmm1, xmm0
movaps xmm0, xmm1
pandn xmm1, xmm3
pand xmm0, xmm2
por xmm0, xmm1
movaps xmm1, xmm5
movups xmmword [esp + ecx*4 + 0x68], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
pcmpgtd xmm1, xmm0
movaps xmm0, xmm1
pandn xmm1, xmm3
pand xmm0, xmm2
por xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x78], xmm0
add ecx, 0x10
cmp ecx, ebx
jl 0x502e02
mov ebx, dword [esp + 0x14]
cmp ecx, ebx
jge 0x502ed9
mov esi, dword [esp + 0x14]
cmp ecx, ebp
lea eax, [edx + 1]
cmovge eax, edx
mov dword [esp + ecx*4 + 0x48], eax
inc ecx
cmp ecx, esi
jl 0x502ec2
mov ebx, dword [esp + 0x14]
xor esi, esi
inc dword [edi + 0x78]
cmp dword [edi + 0x14], 0
jne 0x502ef2
call fcn.0048a400
mov dword [edi + 0x14], eax
test eax, eax
je 0x503551
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x502f09
call fcn.0048a5b0
mov dword [edi + 0x1c], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
add esp, 8
cmp dword [edi + 0x18], 0
jne 0x502f2a
call fcn.0048a400
mov dword [edi + 0x18], eax
test eax, eax
je 0x503551
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x502f41
call fcn.0048a5b0
mov dword [edi + 0x20], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
mov eax, dword [edi + 0x24]
add esp, 8
test eax, eax
jne 0x502f63
call fcn.0048a5b0
mov dword [edi + 0x24], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
mov eax, dword [edi + 0x28]
add esp, 8
test eax, eax
jne 0x502f85
call fcn.0048a5b0
mov dword [edi + 0x28], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
mov eax, dword [edi + 0x2c]
add esp, 8
test eax, eax
jne 0x502fa7
call fcn.0048a5b0
mov dword [edi + 0x2c], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
mov eax, dword [edi + 0x30]
add esp, 8
test eax, eax
jne 0x502fc9
call fcn.0048a5b0
mov dword [edi + 0x30], eax
test eax, eax
je 0x503551
push 4
push eax
call fcn.0048a6f0
add esp, 8
cmp ebx, 2
jle 0x503046
lea eax, [ebx - 2]
mov dword [edi + 8], 1
push eax
push 0
call fcn.0048d920
mov ebp, eax
add esp, 8
mov dword [esp + 0x28], ebp
test ebp, ebp
je 0x503551
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x503011
push 0x492870
push eax
call fcn.0048d9d0
add esp, 8
mov ebx, 2
mov dword [edi + 0x4c], ebp
cmp dword [esp + 0x14], ebx
jle 0x503042
nop
call fcn.004928d0
mov dword [esp + 0x34], eax
test eax, eax
je 0x503551
push eax
push ebp
call fcn.0048da30
inc ebx
add esp, 8
cmp ebx, dword [esp + 0x14]
jl 0x503020
mov ebx, dword [esp + 0x14]
push dword [esp + 0x2c]
push dword [edi + 0x18]
call fcn.00489ea0
add esp, 8
test eax, eax
je 0x503551
xor ebp, ebp
test ebx, ebx
jle 0x503317
nop word [eax + eax]
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], 0
test ebp, ebp
jne 0x503085
mov ebx, dword [edi + 0x20]
jmp 0x5030a5
cmp ebp, 1
jne 0x50308f
mov ebx, dword [edi + 0x24]
jmp 0x5030a5
lea eax, [ebp - 2]
push eax
push dword [esp + 0x2c]
call fcn.0048db90
add esp, 8
mov dword [esp + 0x34], eax
mov ebx, dword [eax]
push 4
push ebx
call fcn.0048a6f0
mov eax, dword [esp + ebp*4 + 0x50]
add esp, 8
mov ecx, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], ecx
nop
push dword [esp + 0x10]
push dword [esp + 0x28]
push 0
push 0
push 0
push ecx
push ebx
call fcn.00526ab0
add esp, 0x1c
test eax, eax
je 0x503551
xor esi, esi
cmp esi, ebp
jge 0x503120
test esi, esi
jne 0x5030ef
mov eax, dword [edi + 0x20]
jmp 0x50310b
cmp esi, 1
jne 0x5030f9
mov eax, dword [edi + 0x24]
jmp 0x50310b
lea eax, [esi - 2]
push eax
push dword [esp + 0x2c]
call fcn.0048db90
add esp, 8
mov eax, dword [eax]
push eax
push ebx
call fcn.00489cc0
add esp, 8
test eax, eax
je 0x503291
inc esi
jmp 0x5030e2
call fcn.0048a7e0
mov esi, dword [esp + 0x30]
push eax
push ebx
push esi
call fcn.0048b160
add esp, 0xc
test eax, eax
je 0x503551
call fcn.00487830
push 4
push esi
call fcn.0048a6f0
push dword [esp + 0x18]
push dword [edi + 0x18]
push esi
push dword [esp + 0x2c]
call fcn.0048c3e0
add esp, 0x18
test eax, eax
je 0x50323d
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x44], esi
cmp ebp, 1
jne 0x503182
push dword [esp + 0x10]
push dword [edi + 0x24]
push dword [edi + 0x20]
jmp 0x503192
test ebp, ebp
je 0x5032f4
push dword [esp + 0x10]
push ebx
push dword [edi + 0x14]
push dword [esp + 0x24]
call fcn.0048b380
add esp, 0x10
test eax, eax
je 0x503551
lea eax, [esi - 4]
mov esi, dword [esp + 0x30]
push eax
push dword [esp + 0x1c]
push esi
call fcn.004ba690
add esp, 0xc
test eax, eax
je 0x503551
push esi
call fcn.0048a060
mov esi, eax
add esp, 4
cmp esi, 9
jb 0x5031dc
cmp esi, 0xf
jbe 0x50329a
push dword [esp + 0x1c]
push 2
push dword [esp + 0x2c]
call fcn.005269e0
inc dword [esp + 0x28]
add esp, 0xc
test eax, eax
je 0x503551
cmp dword [esp + 0x14], 4
jle 0x503222
mov ecx, dword [esp + 0x20]
cmp esi, 9
mov esi, dword [esp + 0x2c]
sbb eax, eax
and eax, 2
dec eax
add ecx, eax
inc esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], esi
jmp 0x5030c0
mov esi, dword [esp + 0x2c]
cmp esi, 4
je 0x5032ed
mov ecx, dword [esp + 0x20]
inc esi
mov dword [esp + 0x2c], esi
jmp 0x5030c0
call fcn.004875b0
test eax, eax
js 0x503551
mov ecx, eax
and ecx, 0x7f800000
cmp ecx, 0x1800000
jne 0x503551
and eax, 0x7fffff
cmp eax, 0x6c
jne 0x503551
call fcn.00487650
mov esi, dword [esp + 0x1c]
push esi
push 2
push dword [esp + 0x2c]
call fcn.005269e0
inc esi
add esp, 0xc
mov dword [esp + 0x1c], esi
test eax, eax
je 0x503551
mov ecx, dword [esp + 0x20]
jmp 0x5030c0
cmp ebp, 1
jle 0x5032b9
mov eax, dword [esp + 0x34]
push dword [edi + 0x14]
push dword [eax + 0xc]
call fcn.00489ea0
add esp, 8
test eax, eax
je 0x503551
push dword [esp + 0x18]
push dword [edi + 0x14]
call fcn.00489ea0
add esp, 8
test eax, eax
je 0x503551
push ebp
push 3
push dword [esp + 0x2c]
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x503551
mov esi, dword [esp + 0x44]
jmp 0x50330c
or ebp, 0xffffffff
xor esi, esi
jmp 0x50330c
push 0
push 3
push dword [esp + 0x2c]
call fcn.005269e0
add esp, 0xc
test eax, eax
je 0x503551
inc ebp
cmp ebp, dword [esp + 0x14]
jl 0x503070
push dword [edi + 0x24]
push dword [edi + 0x20]
call fcn.00489cc0
add esp, 8
test eax, eax
jns 0x503335
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
call fcn.0048a7e0
mov esi, dword [esp + 0x18]
push eax
push dword [edi + 0x20]
push esi
call fcn.0048b160
add esp, 0xc
test eax, eax
je 0x503551
call fcn.0048a7e0
mov ebx, dword [esp + 0x30]
push eax
push dword [edi + 0x24]
push ebx
call fcn.0048b160
mov ebp, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x503555
push ebp
push ebx
push esi
push dword [esp + 0x44]
call fcn.0048b380
add esp, 0x10
test eax, eax
je 0x503555
mov ebp, dword [esp + 0x28]
mov esi, 2
cmp dword [esp + 0x14], esi
jle 0x5033eb
nop dword [eax + eax]
lea eax, [esi - 2]
push eax
push ebp
call fcn.0048db90
mov ebx, eax
call fcn.0048a7e0
push eax
push dword [ebx]
push dword [ebx + 4]
call fcn.0048b160
add esp, 0x14
test eax, eax
je 0x503551
push dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
push dword [ebx + 4]
push eax
push eax
call fcn.0048b380
add esp, 0x10
test eax, eax
je 0x503551
inc esi
cmp esi, dword [esp + 0x14]
jl 0x5033a0
call fcn.0048a400
mov ebx, eax
test ebx, ebx
je 0x503551
push 4
push dword [esp + 0x3c]
push ebx
call fcn.0048a7f0
push dword [esp + 0x1c]
push ebx
push dword [edi + 0x18]
push dword [edi + 0x1c]
call fcn.0048c3e0
push ebx
mov esi, eax
call fcn.00489ff0
add esp, 0x20
test esi, esi
je 0x503551
call fcn.0048a400
mov ebx, eax
test ebx, ebx
je 0x503551
push 4
push dword [edi + 0x1c]
push ebx
call fcn.0048a7f0
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x28]
push ebx
push dword [edi + 0x28]
push 0
call fcn.004b9490
add esp, 0x20
test eax, eax
je 0x503548
push esi
push dword [esp + 0x34]
push ebx
push dword [edi + 0x2c]
push 0
call fcn.004b9490
add esp, 0x14
test eax, eax
je 0x503548
mov esi, 2
cmp dword [esp + 0x14], esi
jle 0x5034b5
lea eax, [esi - 2]
push eax
push ebp
call fcn.0048db90
push dword [esp + 0x18]
mov eax, dword [eax + 4]
push eax
push ebx
push eax
push 0
call fcn.004b9490
add esp, 0x1c
test eax, eax
je 0x503548
inc esi
cmp esi, dword [esp + 0x14]
jl 0x503488
push ebx
call fcn.00489ff0
add esp, 4
call fcn.0048a400
mov ebx, eax
test ebx, ebx
je 0x503551
push 4
push dword [edi + 0x20]
push ebx
call fcn.0048a7f0
push dword [esp + 0x1c]
push ebx
push dword [edi + 0x24]
push dword [edi + 0x30]
call fcn.0048c3e0
add esp, 0x1c
test eax, eax
je 0x503548
mov edi, 2
cmp dword [esp + 0x14], edi
jle 0x503534
nop word [eax + eax]
lea eax, [edi - 2]
push eax
push ebp
call fcn.0048db90
mov esi, eax
push 4
push dword [esi]
push ebx
call fcn.0048a7f0
push dword [esp + 0x24]
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0048c3e0
add esp, 0x24
test eax, eax
je 0x503548
inc edi
cmp edi, dword [esp + 0x14]
jl 0x503500
push ebx
call fcn.00489ff0
mov ebp, dword [esp + 0x14]
add esp, 4
mov esi, 1
jmp 0x5035ab
push ebx
call fcn.00489ff0
add esp, 4
mov ebp, dword [esp + 0x10]
call fcn.00486d10
push 0x606fe0
push 0x19f
push str.crypto_rsa_rsa_gen.c
call fcn.00486e10
push 0
push 0x80003
push 4
call fcn.00486ec0
add esp, 0x18
xor esi, esi
jmp 0x5035ab
xor esi, esi
call fcn.00486d10
push 0x606fe0
push 0x66
push str.crypto_rsa_rsa_gen.c
call fcn.00486e10
push esi
push 0xa5
push 4
call fcn.00486ec0
add esp, 0x18
push ebp
call fcn.0048ac60
push ebp
call fcn.0048acd0
mov ecx, dword [esp + 0x64]
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004797c8
add esp, 0x50
ret