Function at 0x4909e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xd4
call fcn.00596bf0
mov eax, dword [0x616930]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x14]
shr eax, 3
push esi
xor esi, esi
mov dword [ebp - 0x90], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x98], edx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xcc], 2
cmp eax, 0x14
je 0x490a59
cmp eax, 0x1c
je 0x490a59
cmp eax, 0x20
je 0x490a59
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057af8a
mov esp, ebp
pop ebp
ret
cmp edx, esi
jne 0x490a8b
cmp eax, 0x14
jne 0x490a6e
mov dword [ebp - 0x98], 0x5df6e0
jmp 0x490a94
cmp eax, 0x1c
jne 0x490a7f
mov dword [ebp - 0x98], 0x5df710
jmp 0x490a94
mov dword [ebp - 0x98], 0x5df740
jmp 0x490a94
mov eax, dword [edx + 8]
mov dword [ebp - 0xac], eax
cmp ecx, 0x200
jae 0x490aa1
mov ecx, 0x200
add ecx, 0x3f
and ecx, 0xffffffc0
mov dword [ebp + 8], ecx
call fcn.00437090
mov dword [ebp - 0xb0], eax
cmp eax, esi
je 0x491d29
push edi
call fcn.00421730
mov edi, eax
mov dword [ebp - 0xa4], edi
test edi, edi
je 0x491b9b
call fcn.00421830
mov ecx, edi
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0x8c], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0xd0], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0xd4], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0xa0], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0x88], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0xa8], eax
call fcn.004218c0
mov ecx, edi
mov dword [ebp - 0x94], eax
call fcn.004218c0
mov dword [ebp - 0x9c], eax
test eax, eax
je 0x4912bc
mov ecx, dword [ebp + 8]
dec ecx
push 0x5ecbbc
mov esi, eax
call fcn.00438da0
add esp, 4
test eax, eax
je 0x4912bc
mov esi, dword [ebp - 0xac]
lea esp, [esp]
test ebx, ebx
je 0x490bad
mov eax, dword [ebx]
dec eax
je 0x490b94
dec eax
je 0x490b80
xor eax, eax
jmp 0x490bb2
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebx + 8]
push ebx
push ecx
push 0
call edx
add esp, 0xc
jmp 0x490bb2
mov eax, dword [ebx + 8]
test eax, eax
je 0x490bad
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 0x4912bc
call fcn.00410600
test eax, eax
je 0x491282
mov eax, dword [eax + 4]
test eax, eax
je 0x491282
lea ecx, [ebp - 0x64]
push esi
push ecx
call eax
add esp, 8
test eax, eax
jle 0x4912bc
push esi
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.0057e070
push esi
lea ecx, [ebp - 0x64]
push ecx
lea edx, [ebp - 0x84]
push edx
call fcn.0057e070
lea eax, [esi - 1]
add esp, 0x18
test eax, eax
js 0x490c1c
inc byte [ebp + eax - 0x44]
jne 0x490c1c
dec eax
jns 0x490c13
mov eax, dword [ebp - 0x98]
push eax
push 0
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x64]
push edx
mov ecx, esi
call fcn.0041bf50
add esp, 0x10
test eax, eax
je 0x4912bc
mov eax, dword [ebp - 0x98]
push eax
push 0
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x44]
push edx
mov ecx, esi
call fcn.0041bf50
add esp, 0x10
test eax, eax
je 0x4912bc
xor eax, eax
test esi, esi
jle 0x490c80
jmp 0x490c70
mov cl, byte [ebp + eax - 0x84]
xor byte [ebp + eax - 0x24], cl
inc eax
cmp eax, esi
jl 0x490c70
or byte [ebp - 0x24], 0x80
mov ecx, dword [ebp - 0xa0]
or byte [ebp + esi - 0x25], 1
lea edx, [ebp - 0x24]
push edx
mov edx, esi
call fcn.00412e70
add esp, 4
test eax, eax
je 0x4912bc
mov eax, dword [ebp - 0xa0]
push ebx
push 1
push edi
push 0x40
push eax
call fcn.00437dc0
add esp, 0x14
test eax, eax
jg 0x490cc9
je 0x490b70
jmp 0x4912bc
test ebx, ebx
je 0x490d15
mov eax, dword [ebx]
dec eax
je 0x490d89
dec eax
jne 0x4912bc
mov ecx, dword [ebx + 8]
push ebx
push eax
push 2
call ecx
add esp, 0xc
test eax, eax
je 0x4912bc
mov eax, dword [ebx]
dec eax
je 0x490da6
dec eax
jne 0x4912bc
push ebx
push eax
mov eax, dword [ebx + 8]
push 3
call eax
add esp, 0xc
test eax, eax
je 0x4912bc
mov edx, dword [ebp + 8]
dec edx
mov eax, 0xcccccccd
mul edx
shr edx, 7
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], edx
mov edx, dword [ebp - 0xc4]
xor edi, edi
cmp edx, edi
je 0x490d68
mov ecx, dword [ebp - 0xb4]
cmp ecx, edi
je 0x490d68
mov eax, dword [ecx]
dec eax
je 0x490dc3
dec eax
jne 0x4912bc
mov eax, dword [ecx + 8]
push ecx
push edx
push edi
call eax
add esp, 0xc
cmp eax, edi
je 0x4912bc
mov ebx, dword [ebp - 0xd4]
cmp dword [ebx + 8], 1
jge 0x490def
push 1
push ebx
call fcn.00412c50
mov esi, eax
add esp, 8
cmp esi, edi
jne 0x490dd7
xor eax, eax
jmp 0x490df1
mov eax, dword [ebx + 8]
test eax, eax
je 0x490cf1
mov edx, dword [ebx + 4]
push edx
push 0
push 2
call eax
add esp, 0xc
jmp 0x490cf1
mov eax, dword [ebx + 8]
test eax, eax
je 0x490d15
mov ecx, dword [ebx + 4]
push ecx
push 0
push 3
call eax
add esp, 0xc
jmp 0x490d15
mov eax, dword [ecx + 8]
cmp eax, edi
je 0x490d68
mov ecx, dword [ecx + 4]
push ecx
push edx
push edi
call eax
add esp, 0xc
jmp 0x490d68
cmp dword [ebx], edi
je 0x490de6
push 1
push ebx
call fcn.00412a00
add esp, 8
mov dword [ebx], esi
mov dword [ebx + 8], 1
mov eax, ebx
cmp eax, edi
je 0x490dff
mov edx, dword [ebx]
mov dword [ebx + 0xc], edi
mov dword [edx], edi
mov dword [ebx + 4], edi
mov dword [ebp - 0xbc], edi
cmp dword [ebp - 0xc8], edi
jl 0x490fb7
mov edi, dword [ebp - 0x8c]
jmp 0x490e20
mov esi, dword [ebp - 0xac]
lea eax, [esi - 1]
test eax, eax
js 0x490e39
lea ecx, [ecx]
inc byte [ebp + eax - 0x44]
jne 0x490e39
dec eax
jns 0x490e30
mov eax, dword [ebp - 0x98]
push eax
push 0
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x44]
push edx
mov ecx, esi
call fcn.0041bf50
add esp, 0x10
test eax, eax
je 0x4912bc
lea eax, [ebp - 0x24]
push eax
mov ecx, edi
mov edx, esi
call fcn.00412e70
add esp, 4
test eax, eax
je 0x4912bc
lea ecx, [esi*8]
imul ecx, dword [ebp - 0xbc]
test ecx, ecx
js 0x491294
push edi
push edi
call fcn.00438e00
mov ecx, dword [edi + 4]
add esp, 8
test ecx, ecx
jle 0x490eb0
mov edx, dword [edi]
lea edx, [edx + ecx*4]
sub edx, 4
cmp dword [edx], 0
jne 0x490ead
dec ecx
test ecx, ecx
jg 0x490ea0
mov dword [edi + 4], ecx
mov edx, dword [edi + 4]
test edx, edx
jne 0x490eba
mov dword [edi + 0xc], edx
test eax, eax
je 0x4912bc
mov esi, dword [ebx + 0xc]
cmp esi, dword [edi + 0xc]
jne 0x490eda
push edi
push ebx
push ebx
call fcn.00421db0
add esp, 0xc
jmp 0x490f91
mov ecx, dword [ebx + 4]
mov eax, ecx
sub eax, edx
jne 0x490f36
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov edi, dword [ebx]
lea eax, [ecx - 1]
test eax, eax
js 0x490f0f
lea ecx, [edx + eax*4]
sub edi, edx
lea esp, [esp]
mov edx, dword [edi + ecx]
mov esi, dword [ecx]
cmp esi, edx
jne 0x490f2a
sub ecx, 4
dec eax
jns 0x490f00
xor esi, esi
cmp dword [ebx + 8], 1
jge 0x490f74
push 1
push ebx
call fcn.00412c50
mov edi, eax
add esp, 8
test edi, edi
jne 0x490f5c
jmp 0x490f76
mov edi, dword [ebp - 0x8c]
sbb eax, eax
and eax, 2
dec eax
test eax, eax
jle 0x490f4a
mov esi, dword [ebx + 0xc]
push edi
push ebx
push ebx
call fcn.00421e90
add esp, 0xc
jmp 0x490f91
jns 0x490f0f
mov esi, dword [edi + 0xc]
push ebx
push edi
push ebx
call fcn.00421e90
add esp, 0xc
jmp 0x490f91
cmp dword [ebx], esi
je 0x490f6b
push 1
push ebx
call fcn.00412a00
add esp, 8
mov dword [ebx], edi
mov dword [ebx + 8], 1
mov eax, ebx
xor ecx, ecx
cmp eax, ecx
je 0x490f86
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 0x4912bc
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
cmp eax, dword [ebp - 0xc8]
jle 0x490e20
xor edi, edi
mov ecx, dword [ebp + 8]
dec ecx
cmp ecx, edi
jl 0x4912bc
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
jns 0x490fdb
dec ecx
or ecx, 0xffffffe0
inc ecx
cmp eax, dword [ebx + 4]
jge 0x4912bc
cmp ecx, edi
jne 0x490fed
mov dword [ebx + 4], eax
jmp 0x491001
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 0x49101f
mov ecx, dword [ebx]
lea ecx, [ecx + eax*4]
lea ecx, [ecx]
sub ecx, 4
cmp dword [ecx], edi
jne 0x49101c
dec eax
cmp eax, edi
jg 0x491010
mov dword [ebx + 4], eax
mov esi, dword [ebx + 4]
cmp esi, edi
jne 0x491029
mov dword [ebx + 0xc], edi
mov edi, dword [ebp - 0x88]
cmp edi, ebx
je 0x49109e
cmp esi, dword [edi + 8]
jle 0x491075
mov edx, edi
push esi
push edx
call fcn.00412c50
mov edi, eax
add esp, 8
test edi, edi
je 0x4912bc
mov eax, dword [ebp - 0x88]
cmp dword [eax], 0
je 0x49106a
push 1
push eax
call fcn.00412a00
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 0x491092
mov edx, dword [ebx]
lea ecx, [eax*4]
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.0057e070
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 0x4912bc
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x9c]
mov ebx, dword [edi + 0xc]
cmp ebx, dword [edx + 0xc]
jne 0x4910cc
push edx
push edi
push edi
mov esi, ebx
call fcn.00421db0
add esp, 0xc
jmp 0x491184
mov ecx, dword [edi + 4]
mov eax, ecx
sub eax, dword [edx + 4]
jne 0x49111b
mov edx, dword [edx]
mov eax, edi
mov edi, dword [eax]
lea eax, [ecx - 1]
test eax, eax
js 0x4910f7
lea ecx, [edx + eax*4]
sub edi, edx
mov edx, dword [ecx + edi]
mov esi, dword [ecx]
cmp esi, edx
jne 0x491109
sub ecx, 4
dec eax
jns 0x4910e8
mov edi, dword [ebp - 0x88]
xor esi, esi
cmp dword [edi + 8], 1
jl 0x491140
mov eax, edi
jmp 0x49116f
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x9c]
sbb eax, eax
and eax, 2
dec eax
test eax, eax
jle 0x49112e
push edx
push edi
push edi
mov esi, ebx
call fcn.00421e90
add esp, 0xc
jmp 0x491184
jns 0x4910f7
mov esi, dword [edx + 0xc]
push edi
push edx
push edi
call fcn.00421e90
add esp, 0xc
jmp 0x491184
push 1
mov ebx, edi
push ebx
call fcn.00412c50
mov edi, eax
add esp, 8
test edi, edi
je 0x49116d
cmp dword [ebx], esi
je 0x491162
push 1
push ebx
call fcn.00412a00
add esp, 8
mov dword [ebx], edi
mov dword [ebx + 8], 1
mov eax, ebx
mov edi, ebx
xor ecx, ecx
cmp eax, ecx
je 0x49117f
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 0x4912bc
mov ecx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x8c]
push ecx
call fcn.00438ba0
add esp, 4
test eax, eax
je 0x4912bc
mov eax, dword [esi + 4]
test eax, eax
je 0x4912a4
mov edx, dword [esi]
cmp dword [edx + eax*4 - 4], 0
je 0x4912dc
mov eax, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0xa8]
push eax
push esi
push edi
push ebx
xor ecx, ecx
call fcn.004376d0
add esp, 0x10
test eax, eax
je 0x4912bc
test ebx, ebx
je 0x4911f1
mov edx, ebx
call fcn.004137d0
push 0x5ecbbc
push ebx
push esi
call fcn.00421d20
add esp, 0xc
test eax, eax
je 0x4912bc
push esi
push edi
mov edi, dword [ebp - 0x94]
push edi
call fcn.00421d20
add esp, 0xc
test eax, eax
je 0x4912bc
mov ebx, dword [ebp - 0x9c]
mov ecx, ebx
mov edx, edi
call fcn.00413170
test eax, eax
js 0x491259
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xa4]
push esi
push 1
push ecx
push 0x40
push edi
call fcn.00437dc0
add esp, 0x14
test eax, eax
jg 0x4912ea
jne 0x4912bc
mov eax, dword [ebp - 0xc4]
inc eax
mov dword [ebp - 0xc4], eax
cmp eax, 0x1000
jl 0x490d33
mov ebx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xa4]
jmp 0x490b63
push 0x3ac
push str.....crypto_rand_rand_lib.c
push 0x65
push 0x64
push 0x24
jmp 0x4912b4
push 0x56
push str.....crypto_bn_bn_shift.c
push 0x77
push 0x91
jmp 0x4912b2
push 0xd7
push str.....crypto_bn_bn_div.c
push 0x67
push 0x6b
push 3
call fcn.0040e790
add esp, 0x14
mov esi, dword [fcn.00419900]
mov edi, dword [ebp - 0xa4]
mov eax, dword [edi + 0x24]
test eax, eax
je 0x491aeb
dec eax
mov dword [edi + 0x24], eax
jmp 0x491b3b
push 0xe1
push str.....crypto_bn_bn_div.c
push 0x6b
jmp 0x4912b0
mov edx, 1
push esi
lea esi, [edx + 1]
call fcn.00437a60
add esp, 4
test eax, eax
je 0x4912bc
push 0x5ecbbc
push edi
push ebx
call fcn.00421d20
add esp, 0xc
test eax, eax
je 0x4912bc
mov ebx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x8c]
push ebx
push edx
push esi
push 0
call fcn.00437640
add esp, 0x10
test eax, eax
je 0x4912bc
push 2
push esi
call fcn.00412e00
add esp, 8
test eax, eax
je 0x4912bc
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb0]
push ebx
push eax
push ecx
call fcn.004371d0
add esp, 0xc
test eax, eax
je 0x4912bc
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x94]
push edx
push ebx
push eax
mov ecx, edi
mov edi, dword [ebp - 0xd0]
push ecx
push esi
push edi
call fcn.00450330
add esp, 0x18
test eax, eax
je 0x4912bc
push edi
call fcn.004135d0
add esp, 4
test eax, eax
je 0x4913ea
push 0x5ecbbc
push esi
push esi
call fcn.00421c90
add esp, 0xc
test eax, eax
je 0x4912bc
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x8c]
inc dword [ebp - 0xcc]
push edx
push ebx
push eax
push ecx
push esi
push edi
call fcn.00450330
add esp, 0x18
test eax, eax
jne 0x491397
jmp 0x4912bc
mov edx, dword [ebp - 0xb4]
push edx
mov edx, 1
lea esi, [edx + 2]
call fcn.00437a60
add esp, 4
test eax, eax
je 0x4912bc
mov eax, dword [ebp - 0x90]
mov edi, dword [eax + 8]
mov dword [ebp - 0xc0], 1
lea esp, [esp]
test edi, edi
je 0x4914a8
mov eax, dword [edi + 0x10]
test al, 2
jne 0x491478
test al, 8
je 0x491528
mov ebx, dword [edi]
test ebx, ebx
je 0x491478
mov ecx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x49151a
cmp esi, fcn.00419900
je 0x49151a
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
test byte [edi + 0x10], 1
je 0x4914ae
test esi, esi
je 0x49155a
cmp esi, fcn.00419900
je 0x49155a
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
mov edx, dword [ebp - 0x90]
mov edi, dword [edx + 0xc]
test edi, edi
je 0x4915cd
mov eax, dword [edi + 0x10]
test al, 2
jne 0x49159a
test al, 8
je 0x49156b
mov ebx, dword [edi]
test ebx, ebx
je 0x49159a
mov eax, dword [edi + 8]
add eax, eax
add eax, eax
push eax
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491568
cmp esi, fcn.00419900
je 0x491568
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x49159a
push ebx
call fcn.0057bec0
add esp, 4
jmp 0x49147e
mov esi, dword [fcn.00419900]
mov eax, dword [edi]
test esi, esi
je 0x49154c
cmp esi, fcn.00419900
je 0x49154c
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x491473
push eax
call fcn.0057bec0
add esp, 4
jmp 0x49147e
push edi
call fcn.0057bec0
add esp, 4
jmp 0x4914ae
push ebx
jmp 0x491592
mov eax, dword [edi]
test esi, esi
je 0x491591
cmp esi, fcn.00419900
je 0x491591
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x49159a
push eax
call fcn.0057bec0
add esp, 4
test byte [edi + 0x10], 1
je 0x4915cd
test esi, esi
je 0x4915c4
cmp esi, fcn.00419900
je 0x4915c4
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x4915cd
push edi
call fcn.0057bec0
add esp, 4
mov ecx, dword [ebp - 0x90]
mov edi, dword [ecx + 0x10]
test edi, edi
je 0x49168f
mov eax, dword [edi + 0x10]
test al, 2
jne 0x49165c
test al, 8
je 0x49162d
mov ebx, dword [edi]
test ebx, ebx
je 0x49165c
mov edx, dword [edi + 8]
add edx, edx
add edx, edx
push edx
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x49162a
cmp esi, fcn.00419900
je 0x49162a
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x49165c
push ebx
jmp 0x491654
mov eax, dword [edi]
test esi, esi
je 0x491653
cmp esi, fcn.00419900
je 0x491653
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x49165c
push eax
call fcn.0057bec0
add esp, 4
test byte [edi + 0x10], 1
je 0x49168f
test esi, esi
je 0x491686
cmp esi, fcn.00419900
je 0x491686
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x49168f
push edi
call fcn.0057bec0
add esp, 4
mov ebx, dword [ebp - 0x94]
test ebx, ebx
jne 0x49169d
xor edi, edi
jmp 0x4916c3
test byte [ebx + 0x10], 8
je 0x4916b2
call fcn.00412bd0
test eax, eax
je 0x4916b7
or dword [eax + 0x10], 8
jmp 0x4916b7
call fcn.00412bd0
mov edi, eax
test edi, edi
jne 0x4916e1
mov esi, dword [fcn.00419900]
mov ebx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x90]
mov dword [eax + 8], edi
test ebx, ebx
jne 0x491803
xor edi, edi
jmp 0x491829
cmp edi, ebx
je 0x4916bd
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x491718
push esi
push edi
call fcn.00412c50
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x491743
cmp dword [edi], 0
je 0x49170d
push 1
push edi
call fcn.00412a00
add esp, 8
mov dword [edi], ebx
mov ebx, dword [ebp - 0x94]
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x491732
mov ecx, dword [ebx]
mov edx, dword [edi]
add eax, eax
add eax, eax
push eax
push ecx
push edx
call fcn.0057e070
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov ecx, dword [ebx + 4]
mov dword [edi + 4], ecx
jmp 0x4916bd
mov eax, dword [edi + 0x10]
test al, 2
jne 0x491787
test al, 8
je 0x4917c7
mov ebx, dword [edi]
test ebx, ebx
je 0x491787
mov edx, dword [edi + 8]
add edx, edx
add edx, edx
push edx
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x4917bc
cmp esi, fcn.00419900
je 0x4917bc
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
test byte [edi + 0x10], 1
je 0x4917fc
test esi, esi
je 0x4917f3
cmp esi, fcn.00419900
je 0x4917f3
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
xor edi, edi
jmp 0x4916c3
push ebx
call fcn.0057bec0
add esp, 4
jmp 0x49178d
mov esi, dword [fcn.00419900]
mov eax, dword [edi]
test esi, esi
je 0x4917e8
cmp esi, fcn.00419900
je 0x4917e8
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x491782
push eax
call fcn.0057bec0
add esp, 4
jmp 0x49178d
push edi
call fcn.0057bec0
add esp, 4
xor edi, edi
jmp 0x4916c3
test byte [ebx + 0x10], 8
je 0x491818
call fcn.00412bd0
test eax, eax
je 0x49181d
or dword [eax + 0x10], 8
jmp 0x49181d
call fcn.00412bd0
mov edi, eax
test edi, edi
jne 0x491847
mov esi, dword [fcn.00419900]
mov ebx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x90]
mov dword [edx + 0xc], edi
test ebx, ebx
jne 0x491970
xor edi, edi
jmp 0x491996
cmp edi, ebx
je 0x491823
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x491882
push esi
push edi
call fcn.00412c50
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x4918b0
cmp dword [edi], 0
je 0x491877
push 1
push edi
call fcn.00412a00
add esp, 8
mov ecx, dword [ebp - 0xa8]
mov dword [edi], ecx
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x49189f
mov ecx, dword [edi]
lea edx, [eax*4]
mov eax, dword [ebx]
push edx
push eax
push ecx
call fcn.0057e070
add esp, 0xc
mov edx, dword [ebx + 0xc]
mov dword [edi + 0xc], edx
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
jmp 0x491823
mov eax, dword [edi + 0x10]
test al, 2
jne 0x4918f4
test al, 8
je 0x491934
mov ebx, dword [edi]
test ebx, ebx
je 0x4918f4
mov ecx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491929
cmp esi, fcn.00419900
je 0x491929
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
test byte [edi + 0x10], 1
je 0x491969
test esi, esi
je 0x491960
cmp esi, fcn.00419900
je 0x491960
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
xor edi, edi
jmp 0x491829
push ebx
call fcn.0057bec0
add esp, 4
jmp 0x4918fa
mov esi, dword [fcn.00419900]
mov eax, dword [edi]
test esi, esi
je 0x491955
cmp esi, fcn.00419900
je 0x491955
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x4918ef
push eax
call fcn.0057bec0
add esp, 4
jmp 0x4918fa
push edi
call fcn.0057bec0
add esp, 4
xor edi, edi
jmp 0x491829
test byte [ebx + 0x10], 8
je 0x491985
call fcn.00412bd0
test eax, eax
je 0x49198a
or dword [eax + 0x10], 8
jmp 0x49198a
call fcn.00412bd0
mov edi, eax
test edi, edi
jne 0x4919c2
mov esi, dword [fcn.00419900]
mov eax, dword [ebp - 0x90]
cmp dword [eax + 8], 0
mov dword [eax + 0x10], edi
je 0x4919b3
cmp dword [eax + 0xc], 0
je 0x4919b3
test edi, edi
jne 0x4912c2
mov dword [ebp - 0xc0], 0
jmp 0x4912c2
cmp edi, ebx
je 0x491990
mov esi, dword [ebx + 4]
cmp esi, dword [edi + 8]
jle 0x4919fd
push esi
push edi
call fcn.00412c50
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
je 0x491a2b
cmp dword [edi], 0
je 0x4919f2
push 1
push edi
call fcn.00412a00
add esp, 8
mov eax, dword [ebp - 0xa8]
mov dword [edi], eax
mov dword [edi + 8], esi
mov eax, dword [ebx + 4]
test eax, eax
jle 0x491a1a
mov edx, dword [ebx]
lea ecx, [eax*4]
mov eax, dword [edi]
push ecx
push edx
push eax
call fcn.0057e070
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov dword [edi + 0xc], ecx
mov edx, dword [ebx + 4]
mov dword [edi + 4], edx
jmp 0x491990
mov eax, dword [edi + 0x10]
test al, 2
jne 0x491a6f
test al, 8
je 0x491aaf
mov ebx, dword [edi]
test ebx, ebx
je 0x491a6f
mov eax, dword [edi + 8]
add eax, eax
add eax, eax
push eax
push ebx
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491aa4
cmp esi, fcn.00419900
je 0x491aa4
push 0xc0
push str.....crypto_bn_bn_lib.c
push ebx
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
test byte [edi + 0x10], 1
je 0x491ae4
test esi, esi
je 0x491adb
cmp esi, fcn.00419900
je 0x491adb
push 0xdb
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
xor edi, edi
jmp 0x491996
push ebx
call fcn.0057bec0
add esp, 4
jmp 0x491a75
mov esi, dword [fcn.00419900]
mov eax, dword [edi]
test esi, esi
je 0x491ad0
cmp esi, fcn.00419900
je 0x491ad0
push 0xc4
push str.....crypto_bn_bn_lib.c
push eax
jmp 0x491a6a
push eax
call fcn.0057bec0
add esp, 4
jmp 0x491a75
push edi
call fcn.0057bec0
add esp, 4
xor edi, edi
jmp 0x491996
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 0x491b31
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 0x491b31
dec edx
test eax, eax
jne 0x491b2c
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x140]
mov eax, 0xf
mov dword [edi + 4], ecx
jmp 0x491b2d
dec eax
test edx, edx
jne 0x491b14
mov dword [edi + 0x20], ebx
mov dword [edi + 0x28], 0
mov eax, dword [edi + 0x14]
test esi, esi
je 0x491b5c
cmp esi, fcn.00419900
je 0x491b5c
push 0xfb
push str.....crypto_bn_bn_ctx.c
push eax
call esi
add esp, 0xc
jmp 0x491b65
push eax
call fcn.0057bec0
add esp, 4
push edi
mov dword [edi + 0x14], 0
call fcn.00421a20
mov esi, dword [fcn.00419900]
add esp, 4
test esi, esi
je 0x491c05
cmp esi, fcn.00419900
je 0x491c05
push 0xb2
push str.....crypto_bn_bn_ctx.c
push edi
call esi
add esp, 0xc
mov esi, dword [fcn.00419900]
mov ebx, dword [ebp - 0xb0]
lea edi, [ebx + 4]
test edi, edi
je 0x491c19
cmp dword [edi], 0
je 0x491bca
test byte [edi + 0x10], 2
jne 0x491bca
push 1
push edi
call fcn.00412a00
mov esi, dword [fcn.00419900]
add esp, 8
test byte [edi + 0x10], 1
je 0x491c19
push 0x14
push edi
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491c10
cmp esi, fcn.00419900
je 0x491c10
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x491c19
push edi
call fcn.0057bec0
add esp, 4
jmp 0x491ba1
push edi
call fcn.0057bec0
add esp, 4
lea edi, [ebx + 0x18]
test edi, edi
je 0x491c80
cmp dword [edi], 0
je 0x491c3c
test byte [edi + 0x10], 2
jne 0x491c3c
push 1
push edi
call fcn.00412a00
mov esi, dword [fcn.00419900]
add esp, 8
test byte [edi + 0x10], 1
je 0x491c80
push 0x14
push edi
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491c77
cmp esi, fcn.00419900
je 0x491c77
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x491c80
push edi
call fcn.0057bec0
add esp, 4
lea edi, [ebx + 0x2c]
test edi, edi
je 0x491ce7
cmp dword [edi], 0
je 0x491ca3
test byte [edi + 0x10], 2
jne 0x491ca3
push 1
push edi
call fcn.00412a00
mov esi, dword [fcn.00419900]
add esp, 8
test byte [edi + 0x10], 1
je 0x491ce7
push 0x14
push edi
call fcn.00527a20
mov esi, dword [fcn.00419900]
add esp, 8
test esi, esi
je 0x491cde
cmp esi, fcn.00419900
je 0x491cde
push 0xd0
push str.....crypto_bn_bn_lib.c
push edi
call esi
mov esi, dword [fcn.00419900]
add esp, 0xc
jmp 0x491ce7
push edi
call fcn.0057bec0
add esp, 4
test byte [ebx + 0x48], 1
pop edi
je 0x491d29
test esi, esi
je 0x491d20
cmp esi, fcn.00419900
je 0x491d20
push 0x104
push str.....crypto_bn_bn_mont.c
push ebx
call esi
mov eax, dword [ebp - 0xc0]
add esp, 0xc
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057af8a
mov esp, ebp
pop ebp
ret
push ebx
call fcn.0057bec0
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc0]
pop esi
xor ecx, ebp
pop ebx
call fcn.0057af8a
mov esp, ebp
pop ebp
ret