Function at 0x10324392
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0x18]
mov edx, dword [0x103c2c84]
mov edi, dword [0x103c2c80]
mov ebx, edi
add ebx, 1
mov ecx, edx
adc ecx, 0
mov eax, edi
lock cmpxchg8b qword [0x103c2c80]
mov edi, eax
jne 0x103243b0
mov dword [ebp - 0x3c], edx
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov ecx, edx
add ecx, 0x2a05f200
mov ebx, esi
adc ebx, 1
mov dword [ebp - 0x1c], edx
add edx, 0xffffffff
mov dword [ebp - 0x20], esi
adc esi, 0xffffffff
mov eax, dword [ebp + 8]
cmp edx, eax
mov edx, dword [ebp + 0xc]
sbb esi, edx
jae 0x1032440e
cmp ecx, eax
sbb ebx, edx
jb 0x1032440e
mov esi, dword [ebp + 0x18]
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
cmp dword [ebp - 0x30], ecx
mov esi, dword [ebp - 0x34]
sbb esi, ebx
jae 0x10324487
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
movq qword [0x103c2c88], xmm0
movq qword [0x103c2c90], xmm0
movd xmm0, dword [ebp - 0x30]
movd xmm1, dword [ebp - 0x34]
punpckldq xmm0, xmm1
movq qword [0x103c2c98], xmm0
pxor xmm0, xmm0
movq qword [0x103c2ca0], xmm0
movq qword [0x103c2ca8], xmm0
add dword [0x103c2cb0], 1
adc dword [0x103c2cb4], 0
mov ecx, dword [ebp - 0x3c]
add edi, 2
adc ecx, 0
movd xmm0, ecx
movd xmm1, edi
punpckldq xmm1, xmm0
movq qword [0x103c2c80], xmm1
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x1c]
add eax, 0x1dcd6500
mov esi, dword [ebp - 0x20]
adc esi, 0
add ecx, 0x32
adc ebx, 0
cmp eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
sbb esi, edx
jae 0x1032461f
cmp ecx, dword [ebp - 0x30]
sbb ebx, dword [ebp - 0x34]
jae 0x1032461f
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
mov ecx, ebx
mov dword [ebp - 0x10], esi
or ecx, esi
mov esi, eax
mov ecx, edx
je 0x1032455c
xor ecx, ecx
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
shrd esi, ebx, cl
shr ebx, cl
test cl, 0x20
cmovne esi, ebx
mov eax, 0
cmovne ebx, eax
mov eax, ebx
mul dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
seto byte [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mul esi
mov dword [ebp - 0x24], eax
seto byte [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mul esi
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
add eax, esi
add edx, eax
setb al
test ebx, ebx
setne ah
cmp dword [ebp - 0x10], 0
setne bl
and bl, ah
or bl, byte [ebp - 0x2c]
or bl, byte [ebp - 0x18]
or bl, al
inc ecx
test bl, bl
jne 0x103244d4
mov al, 0x1f
sub al, cl
mov ecx, eax
mov esi, dword [ebp - 0x38]
shrd esi, edx, cl
shr edx, cl
xor ecx, ecx
test al, 0x20
cmovne esi, edx
cmove ecx, edx
mov eax, dword [ebp + 0x18]
add esi, dword [eax + 8]
adc ecx, dword [eax + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], edi
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
sbb edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov ecx, eax
add cl, 0x1e
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov edi, edx
shr edi, cl
test cl, 0x20
mov ebx, 0
cmovne eax, ebx
mov esi, edi
cmovne esi, ebx
mov ebx, eax
shrd ebx, edx, cl
test cl, 0x20
mov ecx, dword [ebp - 0x10]
cmovne ebx, edi
xor ebx, dword [ebp - 0x14]
xor esi, dword [ebp - 0x18]
dec ecx
or esi, ebx
jne 0x10324573
not cl
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
shrd esi, ebx, cl
shr ebx, cl
xor edi, edi
test cl, 0x20
cmovne esi, ebx
cmovne ebx, edi
mov ecx, esi
or ecx, ebx
je 0x10324632
mov dword [ebp - 0x28], 0
cmp eax, esi
mov ecx, edx
sbb ecx, ebx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ecx, ebx
mov ebx, dword [ebp - 0x2c]
jb 0x10324649
push ecx
push dword [ebp - 0x10]
push edx
push eax
call fcn.10314f90
push edx
push eax
push 0x1f400000
push 0
call fcn.10314f90
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x10324649
add dword [0x103c2cc8], 1
adc dword [0x103c2ccc], 0
jmp 0x10324462
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x2c]
sub edi, dword [ebp - 0x38]
sbb esi, ebx
mov eax, esi
sar eax, 0x1f
shr eax, 0x1c
add eax, edi
mov ecx, esi
adc ecx, 0
shrd eax, ecx, 4
sar ecx, 4
mov dword [ebp - 0x1c], edi
sub edi, eax
mov dword [ebp - 0x20], esi
sbb esi, ecx
add edi, 0x7d000000
mov dword [ebp - 0x14], edi
adc esi, 0
mov dword [ebp - 0x18], esi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov ecx, eax
add cl, 0x1e
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov edi, eax
shr edi, cl
test cl, 0x20
mov edx, 0
cmovne ebx, edx
mov esi, edi
cmovne esi, edx
mov edx, ebx
shrd edx, eax, cl
test cl, 0x20
mov ecx, dword [ebp - 0x10]
cmovne edx, edi
xor edx, dword [ebp - 0x14]
xor esi, dword [ebp - 0x18]
dec ecx
or esi, edx
jne 0x1032467f
not cl
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
shrd edi, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, 0
cmovne edi, edx
cmove ecx, edx
mov edx, edi
or edx, ecx
je 0x1032476f
cmp ebx, edi
mov edx, eax
sbb edx, ecx
jb 0x1032476f
xor edx, edx
mov esi, 0x5f5e0ff
cmp esi, dword [ebp - 0x1c]
sbb edx, dword [ebp - 0x20]
jl 0x1032476f
cmp dword [ebp - 0x1c], 0xfa0a1f01
sbb dword [ebp - 0x20], 0xffffffff
jl 0x1032476f
push ecx
push edi
push eax
push ebx
call fcn.10314f90
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [0x103c2ca0], xmm1
push edx
push eax
push 0x1f400000
push 0
call fcn.10314f90
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [0x103c2ca8], xmm1
add dword [0x103c2cc0], 1
adc dword [0x103c2cc4], 0
mov edi, dword [ebp - 0x40]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x2c]
jmp 0x1032479e
pxor xmm0, xmm0
movq qword [0x103c2ca0], xmm0
movq qword [0x103c2ca8], xmm0
add dword [0x103c2cb8], 1
adc dword [0x103c2cbc], 0
mov ecx, dword [ebp + 8]
mov edx, ecx
mov eax, dword [ebp + 0xc]
mov esi, eax
mov edi, dword [ebp - 0x40]
movd xmm0, ecx
movd xmm1, eax
movss xmm2, dword [ebp - 0x30]
movss xmm3, dword [ebp - 0x34]
punpckldq xmm0, xmm1
movq qword [0x103c2c88], xmm0
movd xmm0, edx
movd xmm1, esi
punpckldq xmm0, xmm1
movq qword [0x103c2c90], xmm0
unpcklps xmm2, xmm3
movlps qword [0x103c2c98], xmm2
mov eax, edx
mov edx, esi
jmp 0x10324462