Function at 0x103e3400
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x1a8
mov eax, dword [0x103fd008]
xor eax, ebp
mov dword [ebp - 4], eax
inc dword [0x103fd710]
mov eax, ecx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x19c], eax
push eax
mov dword [ebp - 0x1a0], esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, eax
mov dword [ebp - 0x154], edi
test edi, edi
jne 0x103e3801
movups xmm0, xmmword [0x103f708c]
mov eax, dword [0x103f70a4]
lea esi, [edi + 4]
mov dword [ebp - 0x178], eax
lea edi, [esi + 0x1b]
mov ax, word [0x103f70a8]
movups xmmword [ebp - 0x190], xmm0
test ah, ah
mov word [ebp - 0x174], ax
movq xmm0, qword [0x103f709c]
mov eax, dword [0x103fd62c]
movq qword [ebp - 0x180], xmm0
mov dword [ebp - 0x154], eax
je 0x103e3637
xor edx, edx
mov dword [ebp - 0x150], edx
cmp eax, 2
jl 0x103e3600
movaps xmm0, xmmword [str.9999999999999999]
movaps xmm4, xmmword [0x103f7350]
movaps xmm3, xmmword [0x103f73a0]
movaps xmm6, xmmword [0x103f7370]
movaps xmmword [ebp - 0x170], xmm0
mov ecx, dword [ebp - 0x170]
movd xmm5, esi
movd xmm7, edi
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x190]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x190], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x18c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x18c], xmm1
add edx, 8
cmp edx, 0x18
jl 0x103e34f0
mov dword [ebp - 0x150], edx
cmp edx, 0x1e
jge 0x103e3637
nop
mov eax, 0x4d4873ed
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x150]
movsx eax, al
mov cl, dl
imul eax, eax, 0x35
sub cl, al
add cl, 0x39
xor byte [ebp + edx - 0x190], cl
inc edx
mov dword [ebp - 0x150], edx
cmp edx, 0x1e
jl 0x103e3600
push dword [0x103fd710]
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
movq xmm0, qword [0x103f6e94]
add esp, 0xc
cmp byte [0x103f6e9f], 0
mov eax, dword [0x103f6e9c]
movq qword [ebp - 0x16c], xmm0
mov dword [ebp - 0x164], eax
je 0x103e37d7
xor edx, edx
cmp dword [ebp - 0x154], 2
mov dword [ebp - 0x150], edx
jl 0x103e37a0
movaps xmm2, xmmword [0x103f7350]
mov edx, 8
movaps xmm4, xmmword [0x103f73a0]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
mov eax, dword [str.9999999999999999]
movd xmm5, esi
psrad xmm1, xmm5
movd xmm6, edi
movaps xmm0, xmm1
mov dword [ebp - 0x150], edx
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x103f7370]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x103f7360]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x103f6e94]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x16c], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x103f7370]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x168]
pxor xmm1, xmm0
movd dword [ebp - 0x168], xmm1
nop dword [eax]
mov eax, 0x4d4873ed
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x150]
movsx eax, al
mov cl, dl
imul eax, eax, 0x35
sub cl, al
add cl, 0x39
xor byte [ebp + edx - 0x16c], cl
inc edx
mov dword [ebp - 0x150], edx
cmp edx, 0xc
jl 0x103e37a0
push 0
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x16c]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.103e79ab
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword fs:[0x2c]
mov ecx, dword [0x103fd638]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x103fd718]
cmp eax, dword [ecx + 4]
jle 0x103e3840
push 0x103fd718
call fcn.103e7f5d
add esp, 4
cmp dword [0x103fd718], 0xffffffff
jne 0x103e3840
push 0x103fd718
call fcn.103e7f13
add esp, 4
mov eax, dword [edi + 0x3c]
xorps xmm0, xmm0
push esi
mov eax, dword [eax + edi + 0x50]
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x14c]
push eax
movq qword [ebp - 0x14c], xmm0
mov dword [ebp - 0x144], 0
call fcn.103e3d10
mov eax, dword [ebp - 0x148]
mov esi, dword [ebp - 0x14c]
sub eax, esi
sar eax, 2
sub dword [ebp - 0x150], eax
mov dword [ebp - 0x198], eax
je 0x103e38e8
xor ecx, ecx
xor edx, edx
test eax, eax
je 0x103e3cb6
nop word [eax + eax]
lea eax, [edx + edi]
mov edi, dword [esi + ecx*4]
mov dword [ebp - 0x194], eax
movzx eax, byte [eax + ecx]
cmp eax, edi
je 0x103e38cc
cmp edi, 0xffffffff
je 0x103e38cc
inc edx
cmp edx, dword [ebp - 0x150]
jae 0x103e38e8
mov edi, dword [ebp - 0x154]
xor ecx, ecx
jmp 0x103e38a0
inc ecx
cmp ecx, dword [ebp - 0x198]
jae 0x103e38dd
mov edi, dword [ebp - 0x154]
jmp 0x103e38a0
mov edi, dword [ebp - 0x194]
jmp 0x103e3cb6
movups xmm0, xmmword [0x103f70ac]
mov al, byte [0x103f70c4]
xor edx, edx
cmp dword [0x103fd62c], 2
mov ecx, dword [0x103fd710]
movups xmmword [ebp - 0x18c], xmm0
lea esi, [edx + 0x1f]
mov byte [ebp - 0x174], al
movq xmm0, qword [0x103f70bc]
lea eax, [edx + 4]
movq qword [ebp - 0x17c], xmm0
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], edx
jl 0x103e3a81
movaps xmm0, xmmword [str.9999999999999999]
movaps xmm4, xmmword [0x103f7350]
movaps xmm3, xmmword [0x103f73a0]
movaps xmm6, xmmword [0x103f7370]
movd xmm7, esi
movaps xmmword [ebp - 0x170], xmm0
mov esi, dword [ebp - 0x170]
movd xmm5, eax
nop dword [eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, esi
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x18c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x18c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, esi
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x188]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x188], xmm1
add edx, 8
cmp edx, 0x18
jl 0x103e3970
mov dword [ebp - 0x150], edx
cmp edx, 0x19
jl 0x103e3a81
push ecx
jmp 0x103e3abe
mov eax, 0x4d4873ed
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x150]
movsx eax, al
mov cl, dl
imul eax, eax, 0x35
sub cl, al
add cl, 0x39
xor byte [ebp + edx - 0x18c], cl
inc edx
mov dword [ebp - 0x150], edx
cmp edx, 0x19
jl 0x103e3a81
push dword [ebp - 0x154]
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, 0x19
lea edi, [ebp - 0x70]
mov esi, 0x103f7010
xor edx, edx
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
mov dword [ebp - 0x150], edx
cmp dword [0x103fd62c], 2
movsb byte es:[edi], byte [esi]
jl 0x103e3c42
movaps xmm0, xmmword [str.9999999999999999]
mov eax, 4
movaps xmm4, xmmword [0x103f7350]
movaps xmm3, xmmword [0x103f73a0]
movaps xmm6, xmmword [0x103f7370]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x170], xmm0
mov ecx, dword [ebp - 0x170]
movd xmm7, eax
nop word [eax + eax]
movd xmm0, edx
lea eax, [edx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x70]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x70], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x103f7380]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x6c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x6c], xmm1
add edx, 8
cmp edx, 0x60
jl 0x103e3b40
mov dword [ebp - 0x150], edx
cmp edx, 0x65
jge 0x103e3c76
mov eax, 0x4d4873ed
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x150]
movsx eax, al
mov cl, dl
imul eax, eax, 0x35
sub cl, al
add cl, 0x39
xor byte [ebp + edx - 0x70], cl
inc edx
mov dword [ebp - 0x150], edx
cmp edx, 0x65
jl 0x103e3c42
push dword [ebp - 0x19c]
lea eax, [ebp - 0x70]
push dword [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0xd8]
push 0
push eax
lea eax, [ebp - 0x140]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esi, dword [ebp - 0x14c]
xor edi, edi
test esi, esi
je 0x103e3cef
mov ecx, dword [ebp - 0x144]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x103e3ce5
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x103e3ce5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.103e7e1d
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.103e79ab
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret