Function at 0x4aaa20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xe0
call fcn.005e38a0
mov eax, dword [0x6c6e10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xdc], ebx
mov ebx, dword [ebp + 0x20]
shr eax, 3
push edi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x98], esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xd0], ebx
mov ebx, dword [ebp + 0x24]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xc4], 2
cmp eax, 0x14
je 0x4aaaac
cmp eax, 0x1c
je 0x4aaaac
cmp eax, 0x20
jne 0x4aab1a
test esi, esi
jne 0x4aaade
cmp eax, 0x14
jne 0x4aaac1
mov dword [ebp - 0x94], 0x68468c
jmp 0x4aaae7
cmp eax, 0x1c
jne 0x4aaad2
mov dword [ebp - 0x94], 0x6846bc
jmp 0x4aaae7
mov dword [ebp - 0x94], 0x6846ec
jmp 0x4aaae7
mov eax, dword [esi + 8]
mov dword [ebp - 0xb0], eax
cmp ecx, 0x200
jae 0x4aaaf4
mov ecx, 0x200
add ecx, 0x3f
and ecx, 0xffffffc0
mov dword [ebp + 0xc], ecx
test edi, edi
je 0x4aab3f
cmp edx, eax
jae 0x4aab2d
push 0x55
push str.....cryptodsadsa_gen.c
push 0x6e
push 0x7d
push 0xa
call fcn.004058f0
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret
jbe 0x4aab31
mov edx, eax
push edx
lea eax, [ebp - 0x64]
push edi
push eax
call fcn.005e12d0
add esp, 0xc
call fcn.00439e60
mov dword [ebp - 0xb4], eax
test eax, eax
je 0x4abe35
call fcn.0042ba00
mov edi, eax
mov dword [ebp - 0xa4], edi
test edi, edi
je 0x4abca7
call fcn.0042bb20
mov ecx, edi
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0x8c], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0xd8], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0xe0], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0xa8], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0x88], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0xac], eax
call fcn.0042bbb0
mov ecx, edi
mov dword [ebp - 0x9c], eax
call fcn.0042bbb0
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x4ab38e
mov ecx, dword [ebp + 0xc]
dec ecx
push 0x691b6c
mov esi, eax
call fcn.0043ba70
add esp, 4
test eax, eax
je 0x4ab38e
mov esi, dword [ebp - 0xb0]
lea ecx, [ecx]
xor ecx, ecx
cmp dword [ebp - 0xcc], ecx
sete cl
mov dword [ebp - 0x90], ecx
test ebx, ebx
je 0x4aac4e
mov eax, dword [ebx]
dec eax
je 0x4aac35
dec eax
je 0x4aac21
xor eax, eax
jmp 0x4aac53
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebx + 8]
push ebx
push edx
push 0
call eax
add esp, 0xc
jmp 0x4aac53
mov eax, dword [ebx + 8]
test eax, eax
je 0x4aac4e
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0xb8]
push ecx
push edx
push 0
call eax
add esp, 0xc
mov eax, 1
inc dword [ebp - 0xb8]
test eax, eax
je 0x4ab38e
cmp dword [ebp - 0x90], 0
je 0x4aac96
call fcn.004030b0
test eax, eax
je 0x4ab354
mov eax, dword [eax + 4]
test eax, eax
je 0x4ab354
lea ecx, [ebp - 0x64]
push esi
push ecx
call eax
add esp, 8
test eax, eax
jle 0x4ab38e
jmp 0x4aaca0
mov dword [ebp - 0xcc], 0
push esi
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.005e12d0
push esi
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x84]
push edx
call fcn.005e12d0
lea eax, [esi - 1]
add esp, 0x18
test eax, eax
js 0x4aacd9
lea esp, [esp]
inc byte [ebp + eax - 0x44]
jne 0x4aacd9
dec eax
jns 0x4aacd0
mov eax, dword [ebp - 0x94]
push eax
push 0
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x64]
push edx
mov ecx, esi
call fcn.00417d00
add esp, 0x10
test eax, eax
je 0x4ab38e
mov eax, dword [ebp - 0x94]
push eax
push 0
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x44]
push edx
mov ecx, esi
call fcn.00417d00
add esp, 0x10
test eax, eax
je 0x4ab38e
xor eax, eax
test esi, esi
jle 0x4aad40
jmp 0x4aad30
mov cl, byte [ebp + eax - 0x84]
xor byte [ebp + eax - 0x24], cl
inc eax
cmp eax, esi
jl 0x4aad30
or byte [ebp - 0x24], 0x80
mov ecx, dword [ebp - 0xa8]
or byte [ebp + esi - 0x25], 1
lea edx, [ebp - 0x24]
push edx
mov edx, esi
call fcn.0040ab70
add esp, 4
test eax, eax
je 0x4ab38e
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa8]
push ebx
push eax
push edi
push 0x40
push ecx
call fcn.0043abb0
add esp, 0x14
test eax, eax
jg 0x4aad8e
je 0x4aac00
jmp 0x4ab38e
test ebx, ebx
je 0x4aadda
mov eax, dword [ebx]
dec eax
je 0x4aae56
dec eax
jne 0x4ab38e
mov edx, dword [ebx + 8]
push ebx
push eax
push 2
call edx
add esp, 0xc
test eax, eax
je 0x4ab38e
mov eax, dword [ebx]
dec eax
je 0x4aae73
dec eax
jne 0x4ab38e
mov edx, dword [ebx + 8]
push ebx
push eax
push 3
call edx
add esp, 0xc
test eax, eax
je 0x4ab38e
mov edx, dword [ebp + 0xc]
dec edx
mov eax, 0xcccccccd
mul edx
shr edx, 7
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xd4], edx
jmp 0x4aae00
mov edx, dword [ebp - 0xbc]
xor edi, edi
cmp edx, edi
je 0x4aae35
mov ecx, dword [ebp - 0xc0]
cmp ecx, edi
je 0x4aae35
mov eax, dword [ecx]
dec eax
je 0x4aae90
dec eax
jne 0x4ab38e
mov eax, dword [ecx + 8]
push ecx
push edx
push edi
call eax
add esp, 0xc
cmp eax, edi
je 0x4ab38e
mov ebx, dword [ebp - 0xe0]
cmp dword [ebx + 8], 1
jge 0x4aaebc
push 1
push ebx
call fcn.0040a860
mov esi, eax
add esp, 8
cmp esi, edi
jne 0x4aaea4
xor eax, eax
jmp 0x4aaebe
mov eax, dword [ebx + 8]
test eax, eax
je 0x4aadb6
mov ecx, dword [ebx + 4]
push ecx
push 0
push 2
call eax
add esp, 0xc
jmp 0x4aadb6
mov eax, dword [ebx + 8]
test eax, eax
je 0x4aadda
mov ecx, dword [ebx + 4]
push ecx
push 0
push 3
call eax
add esp, 0xc
jmp 0x4aadda
mov eax, dword [ecx + 8]
cmp eax, edi
je 0x4aae35
mov ecx, dword [ecx + 4]
push ecx
push edx
push edi
call eax
add esp, 0xc
jmp 0x4aae35
cmp dword [ebx], edi
je 0x4aaeb3
push 1
push ebx
call fcn.0040a600
add esp, 8
mov dword [ebx], esi
mov dword [ebx + 8], 1
mov eax, ebx
cmp eax, edi
je 0x4aaecc
mov edx, dword [ebx]
mov dword [ebx + 0xc], edi
mov dword [edx], edi
mov dword [ebx + 4], edi
mov dword [ebp - 0x90], edi
cmp dword [ebp - 0xd4], edi
jl 0x4ab077
mov edi, dword [ebp - 0x8c]
mov esi, dword [ebp - 0xb0]
lea eax, [esi - 1]
test eax, eax
js 0x4aaefa
inc byte [ebp + eax - 0x44]
jne 0x4aaefa
dec eax
jns 0x4aaef1
mov eax, dword [ebp - 0x94]
push eax
push 0
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x44]
push edx
mov ecx, esi
call fcn.00417d00
add esp, 0x10
test eax, eax
je 0x4ab38e
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
mov edx, esi
call fcn.0040ab70
add esp, 4
test eax, eax
je 0x4ab38e
lea ecx, [esi*8]
imul ecx, dword [ebp - 0x90]
test ecx, ecx
js 0x4ab366
push edi
push edi
call fcn.0043bad0
mov ecx, dword [edi + 4]
add esp, 8
test ecx, ecx
jle 0x4aaf71
mov edx, dword [edi]
lea edx, [edx + ecx*4]
sub edx, 4
cmp dword [edx], 0
jne 0x4aaf6e
dec ecx
test ecx, ecx
jg 0x4aaf61
mov dword [edi + 4], ecx
mov edx, dword [edi + 4]
test edx, edx
jne 0x4aaf7b
mov dword [edi + 0xc], edx
test eax, eax
je 0x4ab38e
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi + 0xc]
jne 0x4aaf9b
push edi
push ebx
push ebx
call fcn.0042c140
add esp, 0xc
jmp 0x4ab051
mov ecx, dword [ebx + 4]
mov eax, ecx
sub eax, edx
jne 0x4aaff6
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov edi, dword [ebx]
lea eax, [ecx - 1]
test eax, eax
js 0x4aafcf
lea ecx, [edx + eax*4]
sub edi, edx
lea ebx, [ebx]
mov edx, dword [edi + ecx]
mov esi, dword [ecx]
cmp esi, edx
jne 0x4aafea
sub ecx, 4
dec eax
jns 0x4aafc0
xor esi, esi
cmp dword [ebx + 8], 1
jge 0x4ab034
push 1
push ebx
call fcn.0040a860
mov edi, eax
add esp, 8
test edi, edi
jne 0x4ab01c
jmp 0x4ab036
mov edi, dword [ebp - 0x8c]
sbb eax, eax
and eax, 2
dec eax
test eax, eax
jle 0x4ab00a
mov esi, dword [ebx + 0xc]
push edi
push ebx
push ebx
call fcn.0042c220
add esp, 0xc
jmp 0x4ab051
jns 0x4aafcf
mov esi, dword [edi + 0xc]
push ebx
push edi
push ebx
call fcn.0042c220
add esp, 0xc
jmp 0x4ab051
cmp dword [ebx], esi
je 0x4ab02b
push 1
push ebx
call fcn.0040a600
add esp, 8
mov dword [ebx], edi
mov dword [ebx + 8], 1
mov eax, ebx
xor ecx, ecx
cmp eax, ecx
je 0x4ab046
mov edx, dword [ebx]
mov dword [ebx + 0xc], ecx
mov dword [edx], ecx
mov dword [ebx + 4], ecx
mov edi, dword [ebp - 0x8c]
mov eax, 1
mov dword [ebx + 0xc], esi
test eax, eax
je 0x4ab38e
mov eax, dword [ebp - 0x90]
inc eax
mov dword [ebp - 0x90], eax
cmp eax, dword [ebp - 0xd4]
jle 0x4aaee4
xor edi, edi
mov ecx, dword [ebp + 0xc]
dec ecx
cmp ecx, edi
jl 0x4ab38e
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
jns 0x4ab09b
dec ecx
or ecx, 0xffffffe0
inc ecx
cmp eax, dword [ebx + 4]
jge 0x4ab38e
cmp ecx, edi
jne 0x4ab0ad
mov dword [ebx + 4], eax
jmp 0x4ab0c1
lea edx, [eax + 1]
mov dword [ebx + 4], edx
mov edx, dword [ebx]
lea eax, [edx + eax*4]
or edx, 0xffffffff
shl edx, cl
not edx
and dword [eax], edx
mov eax, dword [ebx + 4]
cmp eax, edi
jle 0x4ab0df
mov ecx, dword [ebx]
lea ecx, [ecx + eax*4]
lea ecx, [ecx]
sub ecx, 4
cmp dword [ecx], edi
jne 0x4ab0dc
dec eax
cmp eax, edi
jg 0x4ab0d0
mov dword [ebx + 4], eax
mov esi, dword [ebx + 4]
cmp esi, edi
jne 0x4ab0e9
mov dword [ebx + 0xc], edi
mov edi, dword [ebp - 0x88]
cmp edi, ebx
je 0x4ab15e
cmp esi, dword [edi + 8]
jle 0x4ab135
mov edx, edi
push esi
push edx
call fcn.0040a860
mov edi, eax
add esp, 8
test edi, edi
je 0x4ab38e
mov eax, dword [ebp - 0x88]
cmp dword [eax], 0
je 0x4ab12a
push 1
push eax
call fcn.0040a600
mov eax, dword [ebp - 0x88]
add esp, 8
mov dword [eax], edi
mov edi, dword [ebp - 0x88]
mov dword [eax + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x4ab152
mov edx, dword [ebx]
lea ecx, [eax*4]
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.005e12d0
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov dword [edi + 0xc], ecx
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
test edi, edi
je 0x4ab38e
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0xa0]
mov ebx, dword [edi + 0xc]
cmp ebx, dword [edx + 0xc]
jne 0x4ab18c
push edx
push edi
push edi
mov esi, ebx
call fcn.0042c140
add esp, 0xc
jmp 0x4ab256
mov ecx, dword [edi + 4]
mov eax, ecx
sub eax, dword [edx + 4]
jne 0x4ab1e5
mov eax, dword [ebp - 0x88]
mov edi, dword [eax]
mov edx, dword [ebp - 0xa0]
mov edx, dword [edx]
lea eax, [ecx - 1]
test eax, eax
js 0x4ab1c1
lea ecx, [edx + eax*4]
sub edi, edx
mov edx, dword [edi + ecx]
mov esi, dword [ecx]
cmp esi, edx
jne 0x4ab1d3
sub ecx, 4
dec eax
jns 0x4ab1b2
mov edi, dword [ebp - 0x88]
xor esi, esi
cmp dword [edi + 8], 1
jl 0x4ab20a
mov eax, edi
jmp 0x4ab241
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0xa0]
sbb eax, eax
and eax, 2
dec eax
test eax, eax
jle 0x4ab1f8
push edx
push edi
push edi
mov esi, ebx
call fcn.0042c220
add esp, 0xc
jmp 0x4ab256
jns 0x4ab1c1
mov esi, dword [edx + 0xc]
push edi
push edx
push edi
call fcn.0042c220
add esp, 0xc
jmp 0x4ab256
mov ebx, dword [ebp - 0x88]
push 1
push ebx
call fcn.0040a860
mov edi, eax
add esp, 8
test edi, edi
je 0x4ab23b
cmp dword [ebx], esi
je 0x4ab230
push 1
push ebx
call fcn.0040a600
add esp, 8
mov dword [ebx], edi
mov dword [ebx + 8], 1
mov eax, ebx
mov edi, dword [ebp - 0x88]
xor ecx, ecx
cmp eax, ecx
je 0x4ab251
mov eax, dword [edi]
mov dword [edi + 0xc], ecx
mov dword [eax], ecx
mov dword [edi + 4], ecx
mov eax, 1
mov dword [edi + 0xc], esi
test eax, eax
je 0x4ab38e
mov ecx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x8c]
push ecx
call fcn.0043b870
add esp, 4
test eax, eax
je 0x4ab38e
mov eax, dword [esi + 4]
test eax, eax
je 0x4ab376
mov edx, dword [esi]
cmp dword [edx + eax*4 - 4], 0
je 0x4ab3ae
mov eax, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xac]
push eax
push esi
push edi
push ebx
xor ecx, ecx
call fcn.0043a4a0
add esp, 0x10
test eax, eax
je 0x4ab38e
test ebx, ebx
je 0x4ab2c3
mov edx, ebx
call fcn.0040b790
push 0x691b6c
push ebx
push esi
call fcn.0042c0b0
add esp, 0xc
test eax, eax
je 0x4ab38e
push esi
push edi
mov edi, dword [ebp - 0x9c]
push edi
call fcn.0042c0b0
add esp, 0xc
test eax, eax
je 0x4ab38e
mov ebx, dword [ebp - 0xa0]
mov ecx, ebx
mov edx, edi
call fcn.0040b050
test eax, eax
js 0x4ab32b
mov esi, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xa4]
push esi
push 1
push ecx
push 0x40
push edi
call fcn.0043abb0
add esp, 0x14
test eax, eax
jg 0x4ab3bc
jne 0x4ab38e
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
cmp eax, 0x1000
jl 0x4aae00
mov ebx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xa4]
jmp 0x4aabf7
push 0x3ac
push str.....crypto_rand_rand_lib.c
push 0x65
push 0x64
push 0x24
jmp 0x4ab386
push 0x56
push str.....crypto_bn_bn_shift.c
push 0x77
push 0x91
jmp 0x4ab384
push 0xd7
push str.....crypto_bn_bn_div.c
push 0x67
push 0x6b
push 3
call fcn.004058f0
add esp, 0x14
mov esi, dword [fcn.00413ef0]
mov edi, dword [ebp - 0xa4]
mov eax, dword [edi + 0x24]
test eax, eax
je 0x4abbf2
dec eax
mov dword [edi + 0x24], eax
jmp 0x4abc47
push 0xe1
push str.....crypto_bn_bn_div.c
push 0x6b
jmp 0x4ab382
mov edx, 1
push esi
lea esi, [edx + 1]
call fcn.0043a830
add esp, 4
test eax, eax
je 0x4ab38e
push 0x691b6c
push edi
push ebx
call fcn.0042c0b0
add esp, 0xc
test eax, eax
je 0x4ab38e
mov ebx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x8c]
push ebx
push edx
push esi
push 0
call fcn.0043a410
add esp, 0x10
test eax, eax
je 0x4ab38e
push 2
push esi
call fcn.0040ab00
add esp, 8
test eax, eax
je 0x4ab38e
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xb4]
push ebx
push eax
push ecx
call fcn.00439fa0
add esp, 0xc
test eax, eax
je 0x4ab38e
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x9c]
push edx
push ebx
push eax
mov ecx, edi
mov edi, dword [ebp - 0xd8]
push ecx
push esi
push edi
call fcn.00470e20
add esp, 0x18
test eax, eax
je 0x4ab38e
lea esp, [esp]
push edi
call fcn.0040b510
add esp, 4
test eax, eax
je 0x4ab4c3
push 0x691b6c
push esi
push esi
call fcn.0042c020
add esp, 0xc
test eax, eax
je 0x4ab38e
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x8c]
inc dword [ebp - 0xc4]
push edx
push ebx
push eax
push ecx
push esi
push edi
call fcn.00470e20
add esp, 0x18
test eax, eax
jne 0x4ab470
jmp 0x4ab38e
mov edx, dword [ebp - 0xc0]
push edx
mov edx, 1
lea esi, [edx + 2]
call fcn.0043a830
add esp, 4
test eax, eax
je 0x4ab38e
mov eax, dword [ebp - 0x98]
mov edi, dword [eax + 8]
mov dword [ebp - 0xc8], 1
test edi, edi
je 0x4ab57d
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4ab54d
test al, 8
je 0x4ab5fd
mov ebx, dword [edi]
test ebx, ebx
je 0x4ab54d
mov ecx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4ab5ef
cmp esi, fcn.00413ef0
je 0x4ab5ef
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
test byte [edi + 0x10], 1
je 0x4ab583
test esi, esi
je 0x4ab62f
cmp esi, fcn.00413ef0
je 0x4ab62f
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
mov edx, dword [ebp - 0x98]
mov edi, dword [edx + 0xc]
test edi, edi
je 0x4ab6a2
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4ab66f
test al, 8
je 0x4ab640
mov ebx, dword [edi]
test ebx, ebx
je 0x4ab66f
mov eax, dword [edi + 8]
add eax, eax
add eax, eax
push eax
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4ab63d
cmp esi, fcn.00413ef0
je 0x4ab63d
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab66f
push ebx
call fcn.005dcea1
add esp, 4
jmp 0x4ab553
mov esi, dword [fcn.00413ef0]
mov eax, dword [edi]
test esi, esi
je 0x4ab621
cmp esi, fcn.00413ef0
je 0x4ab621
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x4ab548
push eax
call fcn.005dcea1
add esp, 4
jmp 0x4ab553
push edi
call fcn.005dcea1
add esp, 4
jmp 0x4ab583
push ebx
jmp 0x4ab667
mov eax, dword [edi]
test esi, esi
je 0x4ab666
cmp esi, fcn.00413ef0
je 0x4ab666
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab66f
push eax
call fcn.005dcea1
add esp, 4
test byte [edi + 0x10], 1
je 0x4ab6a2
test esi, esi
je 0x4ab699
cmp esi, fcn.00413ef0
je 0x4ab699
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab6a2
push edi
call fcn.005dcea1
add esp, 4
mov ecx, dword [ebp - 0x98]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x4ab764
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4ab731
test al, 8
je 0x4ab702
mov ebx, dword [edi]
test ebx, ebx
je 0x4ab731
mov edx, dword [edi + 8]
add edx, edx
add edx, edx
push edx
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4ab6ff
cmp esi, fcn.00413ef0
je 0x4ab6ff
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab731
push ebx
jmp 0x4ab729
mov eax, dword [edi]
test esi, esi
je 0x4ab728
cmp esi, fcn.00413ef0
je 0x4ab728
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab731
push eax
call fcn.005dcea1
add esp, 4
test byte [edi + 0x10], 1
je 0x4ab764
test esi, esi
je 0x4ab75b
cmp esi, fcn.00413ef0
je 0x4ab75b
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4ab764
push edi
call fcn.005dcea1
add esp, 4
mov ebx, dword [ebp - 0x9c]
test ebx, ebx
jne 0x4ab772
xor edi, edi
jmp 0x4ab798
test byte [ebx + 0x10], 8
je 0x4ab787
call fcn.0040a7d0
test eax, eax
je 0x4ab78c
or dword [eax + 0x10], 8
jmp 0x4ab78c
call fcn.0040a7d0
mov edi, eax
test edi, edi
jne 0x4ab7b6
mov esi, dword [fcn.00413ef0]
mov ebx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x98]
mov dword [eax + 8], edi
test ebx, ebx
jne 0x4ab8d8
xor edi, edi
jmp 0x4ab8fe
cmp edi, ebx
je 0x4ab792
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x4ab7ed
push esi
push edi
call fcn.0040a860
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4ab818
cmp dword [edi], 0
je 0x4ab7e2
push 1
push edi
call fcn.0040a600
add esp, 8
mov dword [edi], ebx
mov ebx, dword [ebp - 0x9c]
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x4ab807
mov ecx, dword [ebx]
mov edx, dword [edi]
add eax, eax
add eax, eax
push eax
push ecx
push edx
call fcn.005e12d0
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
jmp 0x4ab792
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4ab85c
test al, 8
je 0x4ab89c
mov ebx, dword [edi]
test ebx, ebx
je 0x4ab85c
mov edx, dword [edi + 8]
add edx, edx
add edx, edx
push edx
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4ab891
cmp esi, fcn.00413ef0
je 0x4ab891
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
test byte [edi + 0x10], 1
je 0x4ab8d1
test esi, esi
je 0x4ab8c8
cmp esi, fcn.00413ef0
je 0x4ab8c8
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
xor edi, edi
jmp 0x4ab798
push ebx
call fcn.005dcea1
add esp, 4
jmp 0x4ab862
mov esi, dword [fcn.00413ef0]
mov eax, dword [edi]
test esi, esi
je 0x4ab8bd
cmp esi, fcn.00413ef0
je 0x4ab8bd
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x4ab857
push eax
call fcn.005dcea1
add esp, 4
jmp 0x4ab862
push edi
call fcn.005dcea1
add esp, 4
xor edi, edi
jmp 0x4ab798
test byte [ebx + 0x10], 8
je 0x4ab8ed
call fcn.0040a7d0
test eax, eax
je 0x4ab8f2
or dword [eax + 0x10], 8
jmp 0x4ab8f2
call fcn.0040a7d0
mov edi, eax
test edi, edi
jne 0x4ab91c
mov esi, dword [fcn.00413ef0]
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x98]
mov dword [edx + 0xc], edi
test ebx, ebx
jne 0x4aba45
xor edi, edi
jmp 0x4aba6b
cmp edi, ebx
je 0x4ab8f8
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x4ab957
push esi
push edi
call fcn.0040a860
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x4ab985
cmp dword [edi], 0
je 0x4ab94c
push 1
push edi
call fcn.0040a600
add esp, 8
mov ecx, dword [ebp - 0xac]
mov dword [edi], ecx
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x4ab974
mov ecx, dword [edi]
lea edx, [eax*4]
mov eax, dword [ebx]
push edx
push eax
push ecx
call fcn.005e12d0
add esp, 0xc
mov edx, dword [ebx + 0xc]
mov dword [edi + 0xc], edx
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
jmp 0x4ab8f8
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4ab9c9
test al, 8
je 0x4aba09
mov ebx, dword [edi]
test ebx, ebx
je 0x4ab9c9
mov ecx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4ab9fe
cmp esi, fcn.00413ef0
je 0x4ab9fe
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
test byte [edi + 0x10], 1
je 0x4aba3e
test esi, esi
je 0x4aba35
cmp esi, fcn.00413ef0
je 0x4aba35
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
xor edi, edi
jmp 0x4ab8fe
push ebx
call fcn.005dcea1
add esp, 4
jmp 0x4ab9cf
mov esi, dword [fcn.00413ef0]
mov eax, dword [edi]
test esi, esi
je 0x4aba2a
cmp esi, fcn.00413ef0
je 0x4aba2a
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x4ab9c4
push eax
call fcn.005dcea1
add esp, 4
jmp 0x4ab9cf
push edi
call fcn.005dcea1
add esp, 4
xor edi, edi
jmp 0x4ab8fe
test byte [ebx + 0x10], 8
je 0x4aba5a
call fcn.0040a7d0
test eax, eax
je 0x4aba5f
or dword [eax + 0x10], 8
jmp 0x4aba5f
call fcn.0040a7d0
mov edi, eax
test edi, edi
jne 0x4aba97
mov esi, dword [fcn.00413ef0]
mov eax, dword [ebp - 0x98]
cmp dword [eax + 8], 0
mov dword [eax + 0x10], edi
je 0x4aba88
cmp dword [eax + 0xc], 0
je 0x4aba88
test edi, edi
jne 0x4abbc0
mov dword [ebp - 0xc8], 0
jmp 0x4ab394
cmp edi, ebx
je 0x4aba65
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x4abad2
push esi
push edi
call fcn.0040a860
add esp, 8
mov dword [ebp - 0xac], eax
test eax, eax
je 0x4abb00
cmp dword [edi], 0
je 0x4abac7
push 1
push edi
call fcn.0040a600
add esp, 8
mov eax, dword [ebp - 0xac]
mov dword [edi], eax
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x4abaef
mov edx, dword [ebx]
lea ecx, [eax*4]
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.005e12d0
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov dword [edi + 0xc], ecx
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
jmp 0x4aba65
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4abb44
test al, 8
je 0x4abb84
mov ebx, dword [edi]
test ebx, ebx
je 0x4abb44
mov eax, dword [edi + 8]
add eax, eax
add eax, eax
push eax
push ebx
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4abb79
cmp esi, fcn.00413ef0
je 0x4abb79
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
test byte [edi + 0x10], 1
je 0x4abbb9
test esi, esi
je 0x4abbb0
cmp esi, fcn.00413ef0
je 0x4abbb0
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
xor edi, edi
jmp 0x4aba6b
push ebx
call fcn.005dcea1
add esp, 4
jmp 0x4abb4a
mov esi, dword [fcn.00413ef0]
mov eax, dword [edi]
test esi, esi
je 0x4abba5
cmp esi, fcn.00413ef0
je 0x4abba5
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x4abb3f
push eax
call fcn.005dcea1
add esp, 4
jmp 0x4abb4a
push edi
call fcn.005dcea1
add esp, 4
xor edi, edi
jmp 0x4aba6b
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4abbd2
mov ecx, dword [ebp - 0xbc]
mov dword [eax], ecx
cmp dword [ebp - 0xd0], 0
je 0x4ab394
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xd0]
mov dword [eax], edx
jmp 0x4ab394
dec dword [edi + 0x18]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x14]
mov ebx, dword [ecx + eax*4]
mov eax, dword [edi + 0x20]
cmp ebx, eax
jae 0x4abc3d
mov ecx, dword [edi + 0xc]
sub eax, ebx
mov edx, eax
lea eax, [ecx - 1]
sub ecx, edx
and eax, 0xf
mov dword [edi + 0xc], ecx
test edx, edx
je 0x4abc3d
jmp 0x4abc20
dec edx
test eax, eax
jne 0x4abc38
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x140]
mov eax, 0xf
mov dword [edi + 4], ecx
jmp 0x4abc39
dec eax
test edx, edx
jne 0x4abc20
mov dword [edi + 0x20], ebx
mov dword [edi + 0x28], 0
mov eax, dword [edi + 0x14]
test esi, esi
je 0x4abc68
cmp esi, fcn.00413ef0
je 0x4abc68
push 0xfb
push str.....crypto_bn_bn_ctx.c
push eax
call esi
add esp, 0xc
jmp 0x4abc71
push eax
call fcn.005dcea1
add esp, 4
push edi
mov dword [edi + 0x14], 0
call fcn.0042bdb0
mov esi, dword [fcn.00413ef0]
add esp, 4
test esi, esi
je 0x4abd11
cmp esi, fcn.00413ef0
je 0x4abd11
push 0xb2
push str.....crypto_bn_bn_ctx.c
push edi
call esi
add esp, 0xc
mov esi, dword [fcn.00413ef0]
mov ebx, dword [ebp - 0xb4]
lea edi, [ebx + 4]
test edi, edi
je 0x4abd25
cmp dword [edi], 0
je 0x4abcd6
test byte [edi + 0x10], 2
jne 0x4abcd6
push 1
push edi
call fcn.0040a600
mov esi, dword [fcn.00413ef0]
add esp, 8
test byte [edi + 0x10], 1
je 0x4abd25
push 0x14
push edi
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4abd1c
cmp esi, fcn.00413ef0
je 0x4abd1c
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4abd25
push edi
call fcn.005dcea1
add esp, 4
jmp 0x4abcad
push edi
call fcn.005dcea1
add esp, 4
lea edi, [ebx + 0x18]
test edi, edi
je 0x4abd8c
cmp dword [edi], 0
je 0x4abd48
test byte [edi + 0x10], 2
jne 0x4abd48
push 1
push edi
call fcn.0040a600
mov esi, dword [fcn.00413ef0]
add esp, 8
test byte [edi + 0x10], 1
je 0x4abd8c
push 0x14
push edi
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4abd83
cmp esi, fcn.00413ef0
je 0x4abd83
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4abd8c
push edi
call fcn.005dcea1
add esp, 4
lea edi, [ebx + 0x2c]
test edi, edi
je 0x4abdf3
cmp dword [edi], 0
je 0x4abdaf
test byte [edi + 0x10], 2
jne 0x4abdaf
push 1
push edi
call fcn.0040a600
mov esi, dword [fcn.00413ef0]
add esp, 8
test byte [edi + 0x10], 1
je 0x4abdf3
push 0x14
push edi
call fcn.00587b20
mov esi, dword [fcn.00413ef0]
add esp, 8
test esi, esi
je 0x4abdea
cmp esi, fcn.00413ef0
je 0x4abdea
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00413ef0]
add esp, 0xc
jmp 0x4abdf3
push edi
call fcn.005dcea1
add esp, 4
test byte [ebx + 0x48], 1
je 0x4abe35
test esi, esi
je 0x4abe2c
cmp esi, fcn.00413ef0
je 0x4abe2c
push 0x104
push str.....crypto_bn_bn_mont.c
push ebx
call esi
mov eax, dword [ebp - 0xc8]
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret
push ebx
call fcn.005dcea1
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret