Function at 0x5d676970
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov esi, dword [ecx + 4]
add ebx, ebx
mov edi, dword [ecx]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x1c], ebx
test esi, esi
jne 0x5d6769b0
cmp edi, 1
jne 0x5d6769b0
and ebx, 2
mov eax, 1
sub eax, ebx
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
test eax, eax
jne 0x5d6769f8
test edx, edx
je 0x5d676c40
xor ecx, ecx
mov eax, edi
tzcnt ecx, edx
shr eax, 1
lea ebx, [ecx + ecx + 0x40]
xor eax, edi
shr edx, cl
and ebx, eax
mov ecx, edx
xor ebx, dword [ebp - 0x1c]
cmp edx, 1
je 0x5d676c00
mov eax, edi
and eax, edx
xor eax, ebx
mov dword [ebp - 0x1c], eax
test esi, esi
je 0x5d676cbf
mov eax, edi
mov edi, ecx
jmp 0x5d676a4e
test al, 1
jne 0x5d676a2c
xor ebx, ebx
tzcnt ebx, eax
mov ecx, ebx
shr eax, cl
mov ecx, 0x20
sub ecx, ebx
mov dword [ebp - 0x20], eax
mov eax, edx
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x20]
or eax, ecx
mov ecx, ebx
add ebx, ebx
shr edx, cl
mov ecx, edi
shr ecx, 1
xor ecx, edi
and ebx, ecx
xor dword [ebp - 0x1c], ebx
test edx, edx
jne 0x5d676ac0
test esi, esi
je 0x5d676aa4
mov edx, eax
and edx, edi
xor dword [ebp - 0x1c], edx
mov edx, eax
mov eax, edi
mov edi, edx
cmp edi, 1
je 0x5d676c80
cmp eax, edi
sbb esi, 0
mov ebx, esi
sub eax, edi
je 0x5d676c50
mov esi, edi
shr esi, 1
xor esi, edi
mov dword [ebp - 0x20], esi
jmp 0x5d676a7d
cmp eax, edi
sbb ebx, 0
sub eax, edi
je 0x5d676c50
xor edx, edx
mov esi, ebx
tzcnt edx, eax
mov ecx, edx
shr eax, cl
mov ecx, 0x20
sub ecx, edx
shl esi, cl
mov ecx, edx
add edx, edx
and edx, dword [ebp - 0x20]
shr ebx, cl
xor dword [ebp - 0x1c], edx
or eax, esi
test ebx, ebx
jne 0x5d676a70
mov esi, dword [ebp - 0x1c]
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], esi
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
jmp sym.msys_gmp_10.dll_I_gmpn_jacobi_base
test esi, esi
je 0x5d676c72
cmp edx, esi
jbe 0x5d676cc8
mov ecx, edi
shr ecx, 1
xor ecx, edi
mov dword [ebp - 0x20], ecx
sub eax, edi
sbb edx, esi
test eax, eax
je 0x5d676c13
mov dword [ebp - 0x24], edi
jmp 0x5d676afd
sub eax, dword [ebp - 0x24]
sbb edx, esi
test eax, eax
je 0x5d676c10
xor ebx, ebx
mov edi, edx
tzcnt ebx, eax
lea ecx, [ebx + ebx]
and ecx, dword [ebp - 0x20]
xor dword [ebp - 0x1c], ecx
mov ecx, ebx
shr eax, cl
mov ecx, 0x20
sub ecx, ebx
shl edi, cl
mov ecx, ebx
shr edx, cl
or eax, edi
cmp esi, edx
jb 0x5d676af0
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x24]
je 0x5d676bac
mov ecx, edi
and ecx, eax
xor ecx, ebx
mov dword [ebp - 0x20], ecx
test edx, edx
je 0x5d676cdd
cmp esi, edx
jbe 0x5d676ac0
mov ecx, eax
shr ecx, 1
xor ecx, eax
mov dword [ebp - 0x1c], ecx
sub edi, eax
sbb esi, edx
test edi, edi
je 0x5d676c9b
mov dword [ebp - 0x24], eax
jmp 0x5d676b6d
sub edi, dword [ebp - 0x24]
sbb esi, edx
test edi, edi
je 0x5d676c98
xor ebx, ebx
mov eax, esi
tzcnt ebx, edi
lea ecx, [ebx + ebx]
and ecx, dword [ebp - 0x1c]
xor dword [ebp - 0x20], ecx
mov ecx, ebx
shr edi, cl
mov ecx, 0x20
sub ecx, ebx
shl eax, cl
mov ecx, ebx
shr esi, cl
or edi, eax
cmp esi, edx
ja 0x5d676b60
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov ecx, edi
and ecx, eax
xor ecx, ebx
mov dword [ebp - 0x1c], ecx
cmp esi, edx
jne 0x5d676ac0
cmp edi, eax
jbe 0x5d676bbd
mov ecx, edi
and ecx, eax
xor dword [ebp - 0x1c], ecx
mov ecx, eax
mov eax, edi
mov edi, ecx
sub eax, edi
je 0x5d676c40
xor ecx, ecx
mov esi, edi
tzcnt ecx, eax
shr esi, 1
lea ebx, [ecx + ecx]
xor esi, edi
shr eax, cl
and ebx, esi
mov ecx, eax
xor ebx, dword [ebp - 0x1c]
cmp eax, 1
je 0x5d676cee
mov eax, edi
and eax, ecx
xor eax, ebx
mov dword [ebp - 0x1c], eax
mov eax, edi
mov edi, ecx
mov ecx, edi
mov esi, edx
mov edi, eax
jmp 0x5d6769ef
and ebx, 2
mov eax, edx
sub eax, ebx
jmp 0x5d6769a4
mov edi, dword [ebp - 0x24]
xor ecx, ecx
mov eax, edi
tzcnt ecx, edx
shr edx, cl
lea ecx, [ecx + ecx + 0x40]
and ecx, dword [ebp - 0x20]
and eax, edx
xor eax, dword [ebp - 0x1c]
xor ecx, eax
mov eax, edi
mov edi, edx
mov dword [ebp - 0x1c], ecx
jmp 0x5d676a45
add esp, 0x1c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
je 0x5d676c40
xor ecx, ecx
mov edx, edi
tzcnt ecx, ebx
shr edx, 1
lea eax, [ecx + ecx + 0x40]
xor edx, edi
and eax, edx
xor dword [ebp - 0x1c], eax
mov eax, ebx
shr eax, cl
jmp 0x5d676aa4
cmp edi, 1
jne 0x5d676bef
lea esi, [esi]
nop
mov edx, dword [ebp - 0x1c]
mov eax, 1
and edx, 2
sub eax, edx
jmp 0x5d6769a4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
tzcnt ecx, esi
shr esi, cl
lea ecx, [ecx + ecx + 0x40]
and ecx, dword [ebp - 0x1c]
mov ebx, esi
mov edi, esi
mov esi, edx
and ebx, eax
xor ebx, dword [ebp - 0x20]
xor ecx, ebx
mov dword [ebp - 0x1c], ecx
jmp 0x5d676a45
mov eax, edi
mov edi, edx
jmp 0x5d676aa4
je 0x5d676bac
mov ecx, eax
and ecx, edi
xor ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
jmp 0x5d676b3e
mov ebx, dword [ebp - 0x20]
mov edx, eax
mov eax, edi
mov edi, edx
mov dword [ebp - 0x1c], ebx
jmp 0x5d676a45
and ebx, 2
sub eax, ebx
jmp 0x5d6769a4