Function at 0x10111e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov edi, dword [ebp + 8]
mov esi, dword [edi]
test esi, esi
je 0x10112b56
mov ecx, dword [edi + 8]
movzx ebx, byte [ebp + 0xc]
test ecx, ecx
mov dword [ebp - 0x24], ecx
je 0x10112127
mov eax, esi
mov eax, dword [esi + 8]
cmp ecx, 1
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x28], eax
je 0x1011201d
mov eax, dword [ebp - 0x24]
xor edx, edx
lea edi, [eax + 0xfffffff]
mov eax, dword [ebp - 0x28]
mov ecx, edi
and ecx, 0xfffffff
cmp ecx, 8
jb 0x10112001
movd xmm0, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
and edi, 7
mov edx, ecx
sub edx, edi
mov esi, edx
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x1033b350]
add eax, 0x88
movdqa xmm2, xmm1
nop word cs:[eax + eax]
nop dword [eax]
movd xmm3, dword [eax - 0x40]
movd xmm5, dword [eax - 0x50]
movd xmm4, dword [eax - 0x70]
movd xmm6, dword [eax - 0x20]
movdqa xmm7, xmm1
pxor xmm1, xmm0
punpckldq xmm5, xmm3
movd xmm3, dword [eax - 0x60]
punpckldq xmm4, xmm3
movd xmm3, dword [eax]
punpcklqdq xmm4, xmm5
movd xmm5, dword [eax - 0x10]
punpckldq xmm5, xmm3
movd xmm3, dword [eax - 0x30]
sub eax, 0xffffff80
add esi, 0xfffffff8
punpckldq xmm3, xmm6
movdqa xmm6, xmm4
pxor xmm6, xmm0
punpcklqdq xmm3, xmm5
pcmpgtd xmm6, xmm1
pand xmm7, xmm6
pandn xmm6, xmm4
movdqa xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm1, xmm6
movdqa xmm6, xmm3
pxor xmm6, xmm0
por xmm1, xmm7
pcmpgtd xmm6, xmm2
pand xmm4, xmm6
pandn xmm6, xmm3
movdqa xmm2, xmm6
por xmm2, xmm4
jne 0x10111f00
movdqa xmm4, xmm1
movdqa xmm3, xmm2
test edi, edi
pxor xmm4, xmm0
pxor xmm3, xmm0
pcmpgtd xmm3, xmm4
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
pshufd xmm2, xmm3, 0xee
movdqa xmm4, xmm3
movdqa xmm1, xmm2
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm1, xmm4
pand xmm3, xmm1
pandn xmm1, xmm2
por xmm1, xmm3
movdqa xmm3, xmm1
pshufd xmm2, xmm1, 0x55
pxor xmm3, xmm0
pxor xmm0, xmm2
pcmpgtd xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movd eax, xmm0
je 0x1011201d
mov esi, dword [ebp - 0x10]
sub ecx, edx
shl edx, 4
lea edx, [edx + esi + 0x18]
nop dword [eax]
mov esi, dword [edx]
cmp eax, esi
cmovae eax, esi
add edx, 0x10
dec ecx
jne 0x10112010
test eax, eax
je 0x10112208
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
test bl, bl
jne 0x10112131
mov ecx, dword [ebp - 0x24]
mov eax, dword [esi]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], esi
shl ecx, 4
mov dword [ebp - 0x14], eax
add eax, edx
mov edi, edx
add ecx, esi
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x2c], ecx
mov ecx, 1
jmp 0x10112079
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x10]
movzx ebx, byte [ebp + 0xc]
mov edx, dword [ebp - 0x28]
xor ecx, ecx
mov al, 1
test edi, edi
je 0x101122d9
test al, 1
je 0x10112090
mov ebx, dword [ebp - 0x1c]
cmp ebx, dword [ebp - 0x2c]
jne 0x101120a8
jmp 0x10112259
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x1c]
sub eax, ebx
shr eax, 4
cmp eax, ecx
jbe 0x10112259
shl ecx, 4
add ebx, ecx
mov eax, edx
sub eax, edi
jb 0x10112bfe
mov esi, dword [ebx + 8]
test esi, esi
je 0x101122d2
mov edx, dword [ebx]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
add ebx, 0x10
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], ebx
xor ebx, ebx
add edx, esi
sub ecx, eax
neg esi
mov eax, 0xffffffff
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x40], ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
lea edx, [edi + eax]
cmp edx, 0xffffffff
je 0x10112060
mov edx, dword [ebp - 0x20]
mov ecx, edi
mov edi, dword [ebp - 0x18]
movzx edx, byte [edx + eax]
cmp dl, byte [edi + eax]
jne 0x10112120
inc ebx
mov edx, esi
dec eax
mov edi, ecx
add edx, ebx
jne 0x101120f0
mov edi, dword [ebp - 0x3c]
jmp 0x10112063
mov edi, ebx
jmp 0x10112063
xor edx, edx
test bl, bl
je 0x1011249e
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
mov edx, dword [edi + 8]
test esi, esi
je 0x10112337
test edx, edx
je 0x10112337
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [ebp - 0x1c], edx
shl edx, 4
mov dword [ebp - 0x10], esi
add edx, esi
mov dword [ebp - 0x18], edx
xor edx, edx
mov dword [ebp - 0x14], ecx
mov ecx, 1
mov edi, eax
mov dword [ebp - 0x20], eax
jmp 0x10112195
mov edi, ebx
xor ecx, ecx
test ebx, ebx
movzx ebx, byte [ebp + 0xc]
mov eax, dword [ebp - 0x20]
mov dl, 1
je 0x101122ec
test dl, 1
je 0x101121b0
cmp esi, dword [ebp - 0x18]
jne 0x101121c5
jmp 0x10112272
mov edx, dword [ebp - 0x18]
sub edx, esi
shr edx, 4
cmp edx, ecx
jbe 0x10112272
shl ecx, 4
add esi, ecx
cmp edi, eax
ja 0x10112c0f
mov ecx, dword [esi + 8]
cmp ecx, edi
cmovb edi, ecx
test edi, edi
je 0x101122e0
mov ecx, dword [esi]
add esi, 0x10
xor ebx, ebx
nop word cs:[eax + eax]
nop
movzx edx, byte [ecx + ebx]
mov eax, dword [ebp - 0x14]
cmp dl, byte [eax + ebx]
jne 0x10112180
inc ebx
cmp edi, ebx
jne 0x101121f0
mov ebx, edi
jmp 0x10112182
mov eax, dword [ebp - 0x10]
mov esi, dword [0x1044eff8]
mov ebx, dword [ebp - 0x24]
lea edi, [eax + 4]
jmp 0x10112226
add edi, 0x10
dec ebx
je 0x10112239
cmp dword [edi], 0
je 0x10112220
push dword [edi - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x10112220
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x1011224e
push dword [ebp - 0x10]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
mov dword [edi], 0
jmp 0x10112b56
mov eax, edx
sub eax, edi
jb 0x10112c3b
mov ecx, dword [ebp - 0x24]
movzx ebx, byte [ebp + 0xc]
add dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ecx
jmp 0x10112280
cmp edi, eax
ja 0x10112c42
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
cmp ecx, 2
jb 0x101122cd
test bl, bl
je 0x101122cd
test edi, edi
je 0x101122cd
cmp edi, 4
jae 0x101122cd
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx]
cmp byte [ecx + str.743210_._g], 0xc8
jae 0x101122cd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
add esi, 8
shl eax, 4
jmp 0x101122bc
add esi, 0x10
add eax, 0xfffffff0
je 0x101125ed
cmp dword [esi], 2
jb 0x101122b0
mov byte [esi + 4], 0
mov dword [esi], 1
jmp 0x101122b0
mov eax, dword [ebp - 0x1c]
jmp 0x101122f4
mov esi, dword [ebp - 0x10]
movzx ebx, byte [ebp + 0xc]
xor edi, edi
mov eax, dword [ebp - 0x24]
jmp 0x101122f4
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
movzx ebx, byte [ebp + 0xc]
jmp 0x101122f2
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
xor edi, edi
mov edx, eax
shl eax, 4
mov ecx, esi
nop dword [eax + eax]
test eax, eax
je 0x1011231f
add eax, 0xfffffff0
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
jne 0x10112300
xor eax, eax
cmp edi, 2
setb cl
cmp edi, 4
jbe 0x10112330
jmp 0x10112344
cmp edx, 0x11
setb al
cmp edi, 2
setb cl
cmp edi, 4
ja 0x10112344
or cl, al
je 0x10112344
mov edi, dword [ebp + 8]
test esi, esi
jne 0x1011249e
jmp 0x10112b56
test bl, bl
je 0x10112364
add esi, 8
shl edx, 4
jmp 0x10112358
add esi, 0x10
add edx, 0xfffffff0
je 0x10112397
cmp dword [esi], edi
jbe 0x10112350
mov byte [esi + 4], 0
mov dword [esi], edi
jmp 0x10112350
mov ebx, edx
add esi, 0xc
shl ebx, 4
jmp 0x10112378
add esi, 0x10
add ebx, 0xfffffff0
je 0x10112397
mov eax, dword [esi - 4]
sub eax, edi
jbe 0x10112370
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
add eax, ecx
push edi
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov dword [esi - 4], edi
jmp 0x10112370
mov edi, dword [ebp + 8]
mov esi, dword [edi]
test esi, esi
je 0x10112c20
mov edx, dword [edi + 8]
cmp edx, 2
jb 0x10112486
dec edx
lea ebx, [esi + 0x1c]
mov dword [ebp - 0x10], esi
mov ecx, edx
mov edx, 1
jmp 0x101123ea
mov esi, dword [ebp - 0x14]
mov eax, edx
inc edx
shl eax, 4
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movq qword [edi + eax + 8], xmm1
movq qword [edi + eax], xmm0
mov edi, dword [ebp + 8]
add ebx, 0x10
dec ecx
je 0x10112479
lea eax, [ebx - 0xc]
mov edi, dword [ebp - 0x10]
lea esi, [edx - 1]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx - 4]
shl esi, 4
cmp eax, dword [edi + esi + 8]
jne 0x101123c0
mov dword [ebp - 0x18], ecx
lea ecx, [edi + esi]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx]
push eax
mov eax, dword [ebp - 0x20]
push dword [eax]
mov dword [ebp - 0x1c], ecx
push ecx
mov dword [ebp - 0x20], edx
call sub.msvcrt.dll_memcmp
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esp, 0xc
test eax, eax
jne 0x101123c0
cmp byte [ebx], 0
setne al
cmp byte [edi + esi + 0xc], 0
setne cl
cmp al, cl
je 0x1011244e
mov eax, dword [ebp - 0x10]
mov byte [ebx], 0
lea eax, [eax + esi + 0xc]
mov byte [eax], 0
cmp dword [ebx - 8], 0
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
je 0x1011246c
push eax
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
add ebx, 0x10
dec ecx
jne 0x101123ea
mov dword [edi + 8], edx
mov esi, dword [edi]
test esi, esi
je 0x10112c20
cmp edx, 1
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 1
jne 0x10112c27
mov edx, 1
mov eax, edx
shl edx, 4
mov ecx, esi
nop word cs:[eax + eax]
nop
mov ebx, edx
test edx, edx
je 0x101124d7
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
lea edx, [ebx - 0x10]
jne 0x101124b0
xor ecx, ecx
test esi, esi
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x14], 0
jne 0x10112513
jmp 0x10112914
lea ecx, [ebp - 0x38]
mov edx, esi
push eax
call fcn.100fb4b0
add esp, 4
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov esi, dword [edi]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x50], eax
mov ecx, 1
test esi, esi
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x14], 0
je 0x10112914
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x101128ad
cmp byte [ebp + 0xc], 0
je 0x10112549
add esi, 8
shl edi, 4
jmp 0x10112538
add esi, 0x10
add edi, 0xfffffff0
je 0x1011258d
cmp dword [esi], 6
jb 0x10112530
mov byte [esi + 4], 0
mov dword [esi], 5
jmp 0x10112530
add esi, 0xc
shl edi, 4
jmp 0x10112568
add esi, 0x10
add edi, 0xfffffff0
je 0x1011258d
mov eax, dword [esi - 4]
cmp eax, 6
jb 0x10112560
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
mov edx, dword [eax + ecx - 5]
movzx eax, byte [eax + ecx - 1]
mov byte [ecx + 4], al
mov dword [ecx], edx
mov dword [esi - 4], 5
jmp 0x10112560
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x101125a9
test esi, esi
je 0x101125a9
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x10112914
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x101128ad
cmp byte [ebp + 0xc], 0
je 0x101126c3
add esi, 8
shl edi, 4
jmp 0x101125dc
add esi, 0x10
add edi, 0xfffffff0
je 0x101126f5
cmp dword [esi], 5
jb 0x101125d0
mov byte [esi + 4], 0
mov dword [esi], 4
jmp 0x101125d0
mov edx, dword [ecx]
test edx, edx
je 0x10112b56
mov ecx, dword [ecx + 8]
cmp ecx, 2
jb 0x10112b56
dec ecx
lea esi, [edx + 0x1c]
mov ebx, 1
mov dword [ebp - 0x10], edx
jmp 0x1011263b
mov ebx, dword [ebp - 0x14]
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
mov edi, dword [ebp + 8]
mov eax, ebx
inc ebx
shl eax, 4
movq qword [edx + eax + 8], xmm1
movq qword [edx + eax], xmm0
add esi, 0x10
dec ecx
je 0x101126bb
mov eax, dword [esi - 4]
mov dword [ebp - 0x14], ebx
dec ebx
lea edi, [esi - 0xc]
shl ebx, 4
cmp eax, dword [edx + ebx + 8]
jne 0x10112611
mov dword [ebp - 0x18], ecx
lea ecx, [edx + ebx]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi]
push eax
mov eax, dword [ebp - 0x20]
push dword [eax]
mov dword [ebp - 0x20], ecx
push ecx
call sub.msvcrt.dll_memcmp
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
add esp, 0xc
test eax, eax
jne 0x10112611
cmp byte [esi], 0
setne al
cmp byte [edx + ebx + 0xc], 0
setne cl
cmp al, cl
je 0x10112691
lea eax, [edx + ebx + 0xc]
mov byte [esi], 0
mov byte [eax], 0
cmp dword [esi - 8], 0
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
je 0x101126af
push eax
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
add esi, 0x10
dec ecx
jne 0x1011263b
mov dword [edi + 8], ebx
jmp 0x10112b56
add esi, 0xc
shl edi, 4
jmp 0x101126d8
add esi, 0x10
add edi, 0xfffffff0
je 0x101126f5
mov eax, dword [esi - 4]
cmp eax, 5
jb 0x101126d0
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
mov eax, dword [eax + ecx - 4]
mov dword [ecx], eax
mov dword [esi - 4], 4
jmp 0x101126d0
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x10112711
test esi, esi
je 0x10112711
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x10112914
mov edi, dword [edi + 8]
cmp edi, 0x41
jb 0x101128ad
cmp byte [ebp + 0xc], 0
je 0x1011274c
add esi, 8
shl edi, 4
jmp 0x1011273b
add esi, 0x10
add edi, 0xfffffff0
je 0x10112783
cmp dword [esi], 4
jb 0x10112733
mov byte [esi + 4], 0
mov dword [esi], 3
jmp 0x10112733
add esi, 0xc
shl edi, 4
jmp 0x1011275c
add esi, 0x10
add edi, 0xfffffff0
je 0x10112783
mov eax, dword [esi - 4]
cmp eax, 4
jb 0x10112754
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
movzx edx, word [eax + ecx - 3]
movzx eax, byte [eax + ecx - 1]
mov byte [ecx + 2], al
mov word [ecx], dx
mov dword [esi - 4], 3
jmp 0x10112754
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x1011279f
test esi, esi
je 0x1011279f
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x10112914
mov edi, dword [edi + 8]
cmp edi, 0x41
jb 0x101128ad
cmp byte [ebp + 0xc], 0
je 0x101127da
add esi, 8
shl edi, 4
jmp 0x101127c9
add esi, 0x10
add edi, 0xfffffff0
je 0x10112809
cmp dword [esi], 3
jb 0x101127c1
mov byte [esi + 4], 0
mov dword [esi], 2
jmp 0x101127c1
add esi, 0xc
shl edi, 4
jmp 0x101127ea
add esi, 0x10
add edi, 0xfffffff0
je 0x10112809
mov eax, dword [esi - 4]
cmp eax, 3
jb 0x101127e2
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
movzx eax, word [eax + ecx - 2]
mov word [ecx], ax
mov dword [esi - 4], 2
jmp 0x101127e2
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x10112825
test esi, esi
je 0x10112825
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x10112914
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x101128ad
cmp byte [ebp + 0xc], 0
je 0x1011285c
add esi, 8
shl edi, 4
jmp 0x1011284b
add esi, 0x10
add edi, 0xfffffff0
je 0x1011288a
cmp dword [esi], 2
jb 0x10112843
mov byte [esi + 4], 0
mov dword [esi], 1
jmp 0x10112843
add esi, 0xc
shl edi, 4
jmp 0x1011286c
add esi, 0x10
add edi, 0xfffffff0
je 0x1011288a
mov eax, dword [esi - 4]
cmp eax, 2
jb 0x10112864
mov byte [esi], 0
mov ecx, dword [esi - 0xc]
movzx eax, byte [eax + ecx - 1]
mov byte [ecx], al
mov dword [esi - 4], 1
jmp 0x10112864
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x101128a6
test esi, esi
je 0x101128a6
push 1
push edi
call fcn.10112c70
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x10112914
mov edi, dword [edi + 8]
test edi, edi
je 0x1011290e
mov eax, edi
xor ecx, ecx
shl eax, 4
jmp 0x101128d6
mov edx, dword [esi + ecx]
movzx edx, byte [edx]
cmp byte [edx + str.743210_._g], 0xf9
ja 0x101128e3
add ecx, 0x10
cmp eax, ecx
je 0x1011290e
mov edx, dword [esi + ecx + 8]
cmp edx, 1
je 0x101128c0
test edx, edx
jne 0x101128cf
mov dword [ebp - 0x10], esi
add esi, 4
jmp 0x101128f6
add esi, 0x10
dec edi
je 0x10112955
cmp dword [esi], 0
je 0x101128f0
push dword [esi - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x101128f0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], esi
test ebx, ebx
jne 0x10112b56
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x20], eax
je 0x10112986
mov ebx, dword [edi + 8]
mov dword [ebp - 0x10], ecx
test ebx, ebx
je 0x10112b29
mov eax, dword [ebp - 0x14]
cmp ebx, 1
mov ecx, dword [eax + 8]
jne 0x10112993
mov edi, dword [ebp - 0x20]
cmp ecx, 3
jb 0x10112b02
jmp 0x10112b8c
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x1011296f
push dword [ebp - 0x10]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
mov dword [edi], 0
jne 0x10112b56
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
lea eax, [edi + 4]
jmp 0x10112b4e
lea edx, [ebx + 0xfffffff]
mov edi, dword [ebp - 0x20]
xor esi, esi
mov eax, edx
and eax, 0xfffffff
cmp eax, 8
jb 0x10112ae3
movd xmm0, ecx
mov ecx, dword [ebp - 0x14]
and edx, 7
mov esi, eax
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x1033b350]
sub esi, edx
mov dword [ebp - 0x1c], edx
movdqa xmm2, xmm1
lea edx, [ecx + 0x88]
mov ecx, esi
nop dword [eax + eax]
movd xmm3, dword [edx - 0x40]
movd xmm5, dword [edx - 0x50]
movd xmm4, dword [edx - 0x70]
movd xmm6, dword [edx - 0x20]
movdqa xmm7, xmm1
pxor xmm1, xmm0
punpckldq xmm5, xmm3
movd xmm3, dword [edx - 0x60]
punpckldq xmm4, xmm3
movd xmm3, dword [edx]
punpcklqdq xmm4, xmm5
movd xmm5, dword [edx - 0x10]
punpckldq xmm5, xmm3
movd xmm3, dword [edx - 0x30]
sub edx, 0xffffff80
add ecx, 0xfffffff8
punpckldq xmm3, xmm6
movdqa xmm6, xmm4
pxor xmm6, xmm0
punpcklqdq xmm3, xmm5
pcmpgtd xmm6, xmm1
pand xmm7, xmm6
pandn xmm6, xmm4
movdqa xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm1, xmm6
movdqa xmm6, xmm3
pxor xmm6, xmm0
por xmm1, xmm7
pcmpgtd xmm6, xmm2
pand xmm4, xmm6
pandn xmm6, xmm3
movdqa xmm2, xmm6
por xmm2, xmm4
jne 0x101129e0
movdqa xmm4, xmm1
movdqa xmm3, xmm2
cmp dword [ebp - 0x1c], 0
pxor xmm4, xmm0
pxor xmm3, xmm0
pcmpgtd xmm3, xmm4
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
pshufd xmm2, xmm3, 0xee
movdqa xmm4, xmm3
movdqa xmm1, xmm2
pxor xmm4, xmm0
pxor xmm1, xmm0
pcmpgtd xmm1, xmm4
pand xmm3, xmm1
pandn xmm1, xmm2
por xmm1, xmm3
movdqa xmm3, xmm1
pshufd xmm2, xmm1, 0x55
pxor xmm3, xmm0
pxor xmm0, xmm2
pcmpgtd xmm0, xmm3
pand xmm1, xmm0
pandn xmm0, xmm2
por xmm0, xmm1
movd ecx, xmm0
je 0x10112afd
mov edx, dword [ebp - 0x14]
sub eax, esi
shl esi, 4
lea edx, [esi + edx + 0x18]
nop
mov esi, dword [edx]
cmp ecx, esi
cmovae ecx, esi
add edx, 0x10
dec eax
jne 0x10112af0
cmp ecx, 3
jae 0x10112b5e
mov eax, dword [ebp - 0x14]
mov edi, dword [0x1044eff8]
lea esi, [eax + 4]
jmp 0x10112b16
add esi, 0x10
dec ebx
je 0x10112b29
cmp dword [esi], 0
je 0x10112b10
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
jmp 0x10112b10
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x10112b43
mov eax, dword [0x1044eff8]
push dword [ebp - 0x14]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [ebp - 0x18]
lea eax, [edi + 4]
mov dword [edi], ecx
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov dword [edi + 8], ecx
add esp, 0x4c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebx, 0x40
jbe 0x10112b8c
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
lea esi, [eax + 4]
jmp 0x10112b74
add esi, 0x10
dec ebx
je 0x10112be5
cmp dword [esi], 0
je 0x10112b6e
push dword [esi - 4]
push 0
mov eax, dword [0x1044eff8]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x10112b6e
cmp dword [ebp - 0x18], 0
je 0x10112b56
test edi, edi
je 0x10112bc9
mov eax, dword [ebp - 0x18]
mov ebx, dword [0x1044eff8]
lea esi, [eax + 4]
jmp 0x10112bb6
add esi, 0x10
dec edi
je 0x10112bc9
cmp dword [esi], 0
je 0x10112bb0
push dword [esi - 4]
push 0
push dword [ebx]
call sub.KERNEL32.dll_HeapFree
jmp 0x10112bb0
cmp dword [ebp - 0x10], 0
je 0x10112b56
mov eax, dword [0x1044eff8]
push dword [ebp - 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x10112b56
cmp dword [edi + 4], 0
je 0x10112b43
push dword [ebp - 0x14]
push 0
mov eax, dword [0x1044eff8]
jmp 0x10112b3c
push 0x1033cf2c
push edx
push eax
call fcn.1002abd0
add esp, 0xc
ud2
push 0x1033cf0c
push eax
push edi
call fcn.1002ac30
add esp, 0xc
ud2
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x58], 0
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x58]
call fcn.100f8a00
ud2
push 0x1033cf1c
jmp 0x10112c03
push 0x1033cefc
jmp 0x10112c14