Function at 0x10111e30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x28], edx
cmp edi, 0xffffffff
je 0x1011296e
mov ebp, dword [ecx + 4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edi
lea edx, [ebp + 1]
mov dword [esp + 0x54], ebp
mov eax, edx
mov esi, edx
shr eax, 3
and esi, 0xfffffff8
sub esi, eax
cmp ebp, 8
cmovb esi, ebp
mov eax, esi
shr eax, 1
cmp edi, eax
jae 0x10111ee1
mov ebx, dword [ecx]
mov ecx, edx
xor eax, eax
mov dword [esp + 0x64], esi
mov esi, edx
shr ecx, 4
test dl, 0xf
setne al
add eax, ecx
je 0x10111eb6
movdqa xmm0, xmmword [0x10119420]
mov ecx, ebx
nop dword [eax]
pxor xmm1, xmm1
dec eax
pcmpgtb xmm1, xmmword [ecx]
por xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
jne 0x10111ea0
cmp esi, 0x10
jae 0x10111f0d
lea eax, [ebx + 0x10]
push esi
push ebx
push eax
call fcn.10100490
add esp, 0xc
test esi, esi
jne 0x10111f21
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x2c]
sub ecx, dword [esp + 0x30]
mov dword [eax + 8], ecx
jmp 0x10112963
lea eax, [edi + 1]
inc esi
mov dword [esp + 0x10], edx
mov edx, edi
cmp eax, esi
cmova esi, eax
cmp esi, 8
jae 0x101126e7
xor eax, eax
cmp esi, 4
setae al
lea esi, [eax*4 + 4]
jmp 0x10112716
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
movq qword [ebx + esi + 8], xmm1
movq qword [ebx + esi], xmm0
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
movdqa xmm0, xmmword [0x10119670]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x34], eax
xor eax, 0x736f6d65
mov edx, esi
xor esi, 0x79746573
xor dword [esp + 0x34], 0x6c796765
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
xor edx, 0x6e646f6d
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], edx
mov ecx, eax
xor eax, 0x6e657261
xor ecx, 0x70736575
mov dword [esp + 0x28], eax
mov eax, edx
mov dword [esp + 0x40], ecx
mov ecx, edi
xor edi, 0x74656462
xor ecx, 0x646f7261
add eax, dword [esp + 0x40]
mov dword [esp + 0x4c], edi
mov edi, edx
mov esi, ecx
mov dword [esp + 0x6c], ecx
adc esi, dword [esp + 0x44]
shld edi, ecx, 0xd
shld ecx, edx, 0xd
mov dword [esp + 0x84], eax
xor edx, edx
xor edi, eax
mov dword [esp + 0x7c], edi
xor ecx, esi
mov dword [esp + 0x80], esi
mov eax, ecx
mov dword [esp + 0x78], ecx
shld eax, edi, 0x11
shld edi, ecx, 0x11
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edi
jmp 0x1011200e
mov edx, dword [esp + 0x38]
shr eax, 0x19
lea ecx, [edx - 0x10]
mov byte [ebx + edx], al
and ecx, ebp
mov byte [ebx + ecx + 0x10], al
cmp edx, ebp
lea edx, [edx + 1]
je 0x10111ecd
cmp byte [ebx + edx], 0x80
jne 0x10112003
mov eax, edx
mov dword [esp + 0x38], edx
neg edx
not eax
mov dword [esp + 0x8c], edx
shl eax, 3
mov dword [esp + 0x50], eax
nop dword [eax]
mov eax, dword [esp + 0x8c]
mov eax, dword [ebx + eax*8 - 8]
mov esi, dword [eax + 0x10]
movzx ecx, byte [eax + 0x14]
mov edi, esi
mov edx, esi
mov dword [esp + 0x60], esi
shl edi, 8
shr edx, 0x18
or edi, ecx
test esi, esi
mov dword [esp], edi
je 0x101121f0
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
mov dword [esp + 0x18], eax
movzx eax, byte [eax + 2]
shl eax, 0x18
shl ecx, 8
or ecx, eax
or ecx, edx
mov edx, edi
xor edx, dword [esp + 0x48]
mov esi, ecx
xor esi, dword [esp + 0x4c]
mov ebp, edx
mov eax, edx
add ebp, dword [esp + 0x28]
mov ebx, esi
adc ebx, dword [esp + 0x34]
shld eax, esi, 0x10
shrd edx, esi, 0x10
xor eax, ebp
mov esi, eax
xor edx, ebx
add ebp, dword [esp + 0x7c]
mov edi, edx
adc ebx, dword [esp + 0x78]
add esi, dword [esp + 0x80]
mov dword [esp + 0x14], ebp
mov ebp, eax
adc edi, dword [esp + 0x84]
shld ebp, edx, 0x15
shrd eax, edx, 0xb
mov dword [esp + 0x20], ebx
mov edx, eax
mov eax, ebp
xor eax, esi
xor esi, dword [esp]
mov ebp, edi
xor edx, edi
xor ebp, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], esi
mov esi, ebx
mov ebx, dword [esp + 0x14]
xor esi, dword [esp + 0x74]
lea ecx, [ecx*4]
mov edi, ebx
add ecx, 0xfffffffd
xor edi, dword [esp + 0x70]
mov dword [esp + 0x3c], ecx
and ecx, 0xfffffff8
je 0x10112230
mov dword [esp + 0x24], ecx
mov dword [esp + 8], edx
mov ecx, esi
mov edx, ebp
mov dword [esp + 0xc], 3
mov dword [esp], ebx
nop dword [eax]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
mov ebp, dword [esi + ebx + 4]
mov esi, dword [esp + 8]
xor esi, ebp
mov dword [esp + 0x1c], ebp
mov ebp, esi
mov dword [esp + 8], esi
mov esi, dword [esp + 0x18]
mov esi, dword [esi + ebx]
mov ebx, dword [esp + 0x20]
xor eax, esi
add dword [esp + 4], edi
mov dword [esp + 0x10], esi
mov esi, edi
adc edx, ecx
add ebx, eax
adc dword [esp], ebp
shld esi, ecx, 0xd
shld ecx, edi, 0xd
mov edi, dword [esp + 8]
mov ebp, eax
xor esi, dword [esp + 4]
xor ecx, edx
shld ebp, edi, 0x10
shrd eax, edi, 0x10
mov edi, dword [esp]
xor ebp, ebx
xor eax, edi
add ebx, esi
adc edi, ecx
add edx, ebp
mov dword [esp + 0x14], ebx
mov ebx, ebp
adc dword [esp + 4], eax
shld ebx, eax, 0x15
shrd ebp, eax, 0xb
mov dword [esp], edi
mov edi, esi
shrd esi, ecx, 0xf
mov eax, dword [esp + 4]
shld edi, ecx, 0x11
mov ecx, dword [esp + 0x14]
xor ebx, edx
xor edx, dword [esp + 0x10]
xor esi, dword [esp]
xor ebp, eax
xor eax, dword [esp + 0x1c]
xor edi, ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0xc], eax
cmp eax, dword [esp + 0x24]
mov eax, dword [esp]
mov dword [esp], ecx
mov ecx, esi
mov dword [esp + 0x20], eax
mov eax, ebx
jb 0x10112120
jmp 0x10112240
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
jmp 0x10112323
mov dword [esp + 0x1c], ebp
mov ebp, edx
mov ebx, eax
mov dword [esp + 0xc], 3
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
mov dword [esp + 8], ebp
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x24], esi
and edx, 5
cmp edx, 4
jb 0x10112280
mov ecx, dword [esp + 0x18]
mov ebp, 4
mov esi, eax
mov dword [esp + 0x10], 0
mov ecx, dword [ecx + eax]
mov dword [esp], ecx
jmp 0x10112291
mov dword [esp], 0
mov dword [esp + 0x10], 0
xor ebp, ebp
mov ecx, ebp
mov dword [esp + 0x20], edi
or ecx, 1
cmp ecx, edx
jae 0x101122e0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x3c], edx
xor esi, esi
lea ecx, [edi + ebp]
movzx edx, word [eax + ecx]
lea ecx, [ebp*8]
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
or ebp, 2
or dword [esp], edx
mov edx, dword [esp + 0x3c]
or dword [esp + 0x10], esi
cmp ebp, edx
jb 0x101122e8
jmp 0x1011230f
mov edi, dword [esp + 0x18]
cmp ebp, edx
jae 0x1011230f
add eax, ebp
shl ebp, 3
xor esi, esi
movzx edx, byte [edi + eax]
mov ecx, ebp
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
or dword [esp + 0x10], esi
or dword [esp], edx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x60]
xor ebx, dword [esp]
movd xmm1, dword [esp]
lea eax, [eax*4 + 5]
and eax, 0xfd
shl eax, 0x18
or eax, dword [esp + 0x10]
xor edx, eax
add ecx, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 8], edx
movd xmm6, dword [esp + 0xc]
mov edi, dword [esp + 8]
adc ecx, ebp
add eax, ebx
punpckldq xmm1, xmm6
adc dword [esp + 0x14], edx
mov edx, esi
shld edx, ebp, 0xd
shld ebp, esi, 0xd
mov esi, ebx
shrd ebx, edi, 0x10
shld esi, edi, 0x10
mov edi, dword [esp + 0x14]
xor edx, dword [esp + 4]
xor ebp, ecx
xor esi, eax
xor ebx, edi
add eax, edx
adc edi, ebp
add ecx, esi
adc dword [esp + 4], ebx
mov dword [esp + 0x14], edi
mov edi, edx
shrd edx, ebp, 0xf
movd xmm3, ecx
movd xmm2, dword [esp + 4]
shld edi, ebp, 0x11
mov ebp, esi
shrd esi, ebx, 0xb
movd xmm6, edx
shld ebp, ebx, 0x15
movd xmm4, esi
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x88]
movd xmm5, ebp
mov ebp, dword [esp + 0x54]
punpckldq xmm5, xmm4
movd xmm4, eax
punpckldq xmm3, xmm2
punpcklqdq xmm1, xmm5
movdqa xmm5, xmm4
pshufd xmm2, xmm3, 0x44
movd xmm3, dword [esp + 0x14]
pxor xmm1, xmm2
movd xmm2, dword [esp + 8]
punpckldq xmm5, xmm3
punpckldq xmm3, xmm4
punpckldq xmm2, xmm6
punpcklqdq xmm5, xmm0
punpcklqdq xmm2, xmm3
pxor xmm2, xmm5
movdqa xmm5, xmm1
movdqa xmm3, xmm2
movdqa xmm4, xmm2
psrlq xmm5, 0x30
psllq xmm2, 0xd
paddq xmm3, xmm1
psllq xmm1, 0x10
psrlq xmm4, 0x33
movsd xmm1, xmm2
movsd xmm5, xmm4
pshufd xmm2, xmm3, 0x1e
orpd xmm1, xmm5
xorpd xmm1, xmm3
movapd xmm3, xmm1
movapd xmm4, xmm1
paddq xmm2, xmm1
psrlq xmm3, 0x2f
psrlq xmm4, 0x2b
movsd xmm4, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0x15
psllq xmm3, 0x11
movsd xmm1, xmm3
orpd xmm1, xmm4
xorpd xmm1, xmm2
pshufd xmm2, xmm2, 0x1e
movapd xmm3, xmm1
movapd xmm4, xmm1
paddq xmm2, xmm1
psrlq xmm3, 0x33
psrlq xmm4, 0x30
movsd xmm4, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0x10
psllq xmm3, 0xd
movsd xmm1, xmm3
orpd xmm1, xmm4
xorpd xmm1, xmm2
pshufd xmm2, xmm2, 0x1e
movapd xmm3, xmm1
movapd xmm4, xmm1
paddq xmm2, xmm1
psrlq xmm3, 0x2f
psrlq xmm4, 0x2b
movsd xmm4, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0x15
psllq xmm3, 0x11
movsd xmm1, xmm3
orpd xmm1, xmm4
xorpd xmm1, xmm2
pshufd xmm2, xmm2, 0x1e
movapd xmm3, xmm1
movapd xmm4, xmm1
paddq xmm2, xmm1
psrlq xmm3, 0x33
psrlq xmm4, 0x30
movsd xmm4, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0x10
psllq xmm3, 0xd
movsd xmm1, xmm3
orpd xmm1, xmm4
xorpd xmm1, xmm2
movapd xmm3, xmm1
movapd xmm4, xmm1
pshufd xmm5, xmm1, 0x44
psrlq xmm3, 0x2f
psrlq xmm4, 0x2b
paddq xmm5, xmm2
movsd xmm4, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0x15
psllq xmm3, 0x11
movsd xmm1, xmm3
orpd xmm1, xmm4
pshufd xmm3, xmm1, 0xee
pxor xmm3, xmm1
pshufd xmm1, xmm5, 0xee
movd eax, xmm1
pshufd xmm1, xmm5, 0xff
movd ecx, xmm1
xor ecx, eax
movd eax, xmm3
xor eax, ecx
mov ecx, ebp
and ecx, eax
movdqu xmm1, xmmword [ebx + ecx]
mov esi, ecx
pmovmskb edx, xmm1
test edx, edx
jne 0x101125c4
mov edi, 0x10
mov esi, ecx
nop word cs:[eax + eax]
nop
add esi, edi
add edi, 0x10
and esi, ebp
movdqu xmm1, xmmword [ebx + esi]
pmovmskb edx, xmm1
test edx, edx
je 0x101125b0
tzcnt edx, edx
add edx, esi
and edx, ebp
cmp byte [ebx + edx], 0
js 0x101125de
movdqa xmm1, xmmword [ebx]
pmovmskb edx, xmm1
tzcnt edx, edx
mov esi, dword [esp + 0x38]
mov edi, edx
sub edi, ecx
sub esi, ecx
xor edi, esi
and edi, ebp
cmp edi, 0x10
jb 0x10111ff0
mov edi, ebx
movzx ebx, byte [ebx + edx]
mov ecx, edx
lea esi, [edx - 0x10]
shr eax, 0x19
not ecx
and esi, ebp
mov byte [edi + edx], al
shl ecx, 3
mov byte [edi + esi + 0x10], al
cmp bl, 0xff
je 0x101126c0
mov esi, dword [esp + 0x50]
movzx edx, byte [edi + ecx]
mov ebx, edi
movzx eax, byte [edi + esi]
mov byte [edi + esi], dl
mov byte [edi + ecx], al
movzx eax, byte [edi + esi + 1]
movzx edx, byte [edi + ecx + 1]
mov byte [edi + esi + 1], dl
mov byte [edi + ecx + 1], al
movzx eax, byte [edi + esi + 2]
movzx edx, byte [edi + ecx + 2]
mov byte [edi + esi + 2], dl
mov byte [edi + ecx + 2], al
movzx eax, byte [edi + esi + 3]
movzx edx, byte [edi + ecx + 3]
mov byte [edi + esi + 3], dl
mov byte [edi + ecx + 3], al
movzx eax, byte [edi + esi + 4]
movzx edx, byte [edi + ecx + 4]
mov byte [edi + esi + 4], dl
mov byte [edi + ecx + 4], al
movzx eax, byte [edi + esi + 5]
movzx edx, byte [edi + ecx + 5]
mov byte [edi + esi + 5], dl
mov byte [edi + ecx + 5], al
movzx eax, byte [edi + esi + 6]
movzx edx, byte [edi + ecx + 6]
mov byte [edi + esi + 6], dl
mov byte [edi + ecx + 6], al
movzx eax, byte [edi + esi + 7]
movzx edx, byte [edi + ecx + 7]
mov byte [edi + esi + 7], dl
mov byte [edi + ecx + 7], al
jmp 0x10112030
mov edx, dword [esp + 0x38]
mov ebx, edi
lea eax, [edx - 0x10]
mov byte [edi + edx], 0xff
and eax, ebp
mov byte [edi + eax + 0x10], 0xff
mov eax, dword [esp + 0x50]
movq xmm1, qword [edi + eax]
movq qword [edi + ecx], xmm1
jmp 0x10112003
cmp esi, 0x1fffffff
ja 0x1011296e
shl esi, 3
mov ecx, 0x24924925
mov eax, esi
mul ecx
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 2
dec esi
bsr ecx, esi
mov esi, 0xffffffff
not ecx
shr esi, cl
inc esi
cmp esi, 0x1fffffff
ja 0x1011296e
lea edi, [esi*8]
cmp edi, 0xfffffff0
ja 0x1011296e
add edi, 0xf
lea eax, [esi + 0x10]
and edi, 0xfffffff0
mov ebx, edi
add ebx, eax
jb 0x1011296e
cmp ebx, 0x7ffffff1
jae 0x1011296e
mov dword [esp + 4], eax
lea edx, [ebx + 0x10]
xor ecx, ecx
movzx eax, byte [0x10199148]
call fcn.100ea7d0
test eax, eax
je 0x10112973
mov ecx, eax
mov ebx, esi
lea edx, [esi - 1]
and ecx, 0xfffffff0
and ebx, 0xfffffff8
mov dword [ecx + 0xc], eax
mov eax, esi
shr eax, 3
sub ebx, eax
cmp esi, 9
mov esi, edx
lea eax, [ecx + edi + 0x10]
cmovb ebx, edx
mov dword [esp + 0x24], ebx
push dword [esp + 4]
push 0xff
mov dword [esp + 8], eax
push eax
call fcn.10100a10
add esp, 0xc
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x1011291d
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], esi
xor edi, edi
mov ebx, dword [eax]
movdqa xmm0, xmmword [ebx]
mov dword [esp + 0x18], ebx
pmovmskb esi, xmm0
not esi
jmp 0x10112842
lea ecx, [edx - 0x10]
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], edx
and ecx, dword [esp + 0xc]
shr eax, 0x19
mov dword [esp + 0x20], ecx
mov ecx, dword [esp]
mov dword [esp + 4], eax
mov byte [ecx + edx], al
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov ecx, dword [esp]
mov byte [ecx + eax + 0x10], dl
lea eax, [esi - 1]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp]
and eax, esi
mov esi, dword [esp + 0x14]
shl ecx, 3
movq xmm0, qword [esi - 8]
neg ecx
mov esi, eax
mov eax, dword [esp + 0x2c]
movq qword [edx + ecx - 8], xmm0
mov ecx, dword [esp + 8]
dec ecx
test ecx, ecx
je 0x10112913
test si, si
mov dword [esp + 8], ecx
jne 0x10112869
nop dword [eax + eax]
movdqa xmm0, xmmword [ebx + 0x10]
add ebx, 0x10
add edi, 0x10
pmovmskb esi, xmm0
cmp esi, 0xffff
je 0x10112850
not esi
mov ecx, dword [esp + 0x18]
tzcnt eax, esi
mov edx, dword [esp + 0xa4]
add eax, edi
shl eax, 3
sub ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
push dword [eax - 8]
push dword [esp + 0xb0]
push dword [esp + 0xb0]
call fcn.1006a7d0
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], eax
and ecx, eax
mov eax, dword [esp]
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x101128ee
mov eax, dword [esp + 0xc]
mov ebp, 0x10
nop word cs:[eax + eax]
nop
mov edx, dword [esp]
add ecx, ebp
add ebp, 0x10
and ecx, eax
movdqu xmm0, xmmword [edx + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x101128d0
mov ebp, dword [esp + 0x54]
mov eax, dword [esp]
tzcnt edx, edx
add edx, ecx
and edx, dword [esp + 0xc]
cmp byte [eax + edx], 0
js 0x101127e0
movdqa xmm0, xmmword [eax]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x101127e0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x1011292b
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov edi, dword [esp]
sub edx, dword [esp + 0x30]
test ebp, ebp
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
je 0x10112963
mov edx, dword [esp + 0x18]
lea eax, [ecx*8 + 0xf]
and eax, 0xfffffff0
sub edx, eax
push dword [edx - 4]
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1000d710
mov ecx, ebx
call fcn.1000d750
int3