Function at 0x100fc260
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 0x100fcf46
mov ecx, dword [edi + 8]
movzx ebx, byte [ebp + 0xc]
test ecx, ecx
mov dword [ebp - 0x24], ecx
je 0x100fc517
mov eax, esi
mov eax, dword [esi + 8]
cmp ecx, 1
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x28], eax
je 0x100fc40d
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 0x100fc3f1
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 [0x1024d590]
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 0x100fc2f0
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 0x100fc40d
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 0x100fc400
test eax, eax
je 0x100fc5f8
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
test bl, bl
jne 0x100fc521
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 0x100fc469
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 0x100fc6c9
test al, 1
je 0x100fc480
mov ebx, dword [ebp - 0x1c]
cmp ebx, dword [ebp - 0x2c]
jne 0x100fc498
jmp 0x100fc649
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x1c]
sub eax, ebx
shr eax, 4
cmp eax, ecx
jbe 0x100fc649
shl ecx, 4
add ebx, ecx
mov eax, edx
sub eax, edi
jb 0x100fcfee
mov esi, dword [ebx + 8]
test esi, esi
je 0x100fc6c2
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 0x100fc450
mov edx, dword [ebp - 0x20]
mov ecx, edi
mov edi, dword [ebp - 0x18]
movzx edx, byte [edx + eax]
cmp dl, byte [edi + eax]
jne 0x100fc510
inc ebx
mov edx, esi
dec eax
mov edi, ecx
add edx, ebx
jne 0x100fc4e0
mov edi, dword [ebp - 0x3c]
jmp 0x100fc453
mov edi, ebx
jmp 0x100fc453
xor edx, edx
test bl, bl
je 0x100fc88e
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
mov edx, dword [edi + 8]
test esi, esi
je 0x100fc727
test edx, edx
je 0x100fc727
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 0x100fc585
mov edi, ebx
xor ecx, ecx
test ebx, ebx
movzx ebx, byte [ebp + 0xc]
mov eax, dword [ebp - 0x20]
mov dl, 1
je 0x100fc6dc
test dl, 1
je 0x100fc5a0
cmp esi, dword [ebp - 0x18]
jne 0x100fc5b5
jmp 0x100fc662
mov edx, dword [ebp - 0x18]
sub edx, esi
shr edx, 4
cmp edx, ecx
jbe 0x100fc662
shl ecx, 4
add esi, ecx
cmp edi, eax
ja 0x100fcfff
mov ecx, dword [esi + 8]
cmp ecx, edi
cmovb edi, ecx
test edi, edi
je 0x100fc6d0
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 0x100fc570
inc ebx
cmp edi, ebx
jne 0x100fc5e0
mov ebx, edi
jmp 0x100fc572
mov eax, dword [ebp - 0x10]
mov esi, dword [0x1035648c]
mov ebx, dword [ebp - 0x24]
lea edi, [eax + 4]
jmp 0x100fc616
add edi, 0x10
dec ebx
je 0x100fc629
cmp dword [edi], 0
je 0x100fc610
push dword [edi - 4]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fc610
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x100fc63e
push dword [ebp - 0x10]
push 0
push dword [esi]
call sub.KERNEL32.dll_HeapFree
mov dword [edi], 0
jmp 0x100fcf46
mov eax, edx
sub eax, edi
jb 0x100fd02b
mov ecx, dword [ebp - 0x24]
movzx ebx, byte [ebp + 0xc]
add dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], ecx
jmp 0x100fc670
cmp edi, eax
ja 0x100fd032
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
cmp ecx, 2
jb 0x100fc6bd
test bl, bl
je 0x100fc6bd
test edi, edi
je 0x100fc6bd
cmp edi, 4
jae 0x100fc6bd
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ecx]
cmp byte [ecx + str.743210_._g], 0xc8
jae 0x100fc6bd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
add esi, 8
shl eax, 4
jmp 0x100fc6ac
add esi, 0x10
add eax, 0xfffffff0
je 0x100fc9dd
cmp dword [esi], 2
jb 0x100fc6a0
mov byte [esi + 4], 0
mov dword [esi], 1
jmp 0x100fc6a0
mov eax, dword [ebp - 0x1c]
jmp 0x100fc6e4
mov esi, dword [ebp - 0x10]
movzx ebx, byte [ebp + 0xc]
xor edi, edi
mov eax, dword [ebp - 0x24]
jmp 0x100fc6e4
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
movzx ebx, byte [ebp + 0xc]
jmp 0x100fc6e2
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 0x100fc70f
add eax, 0xfffffff0
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
jne 0x100fc6f0
xor eax, eax
cmp edi, 2
setb cl
cmp edi, 4
jbe 0x100fc720
jmp 0x100fc734
cmp edx, 0x11
setb al
cmp edi, 2
setb cl
cmp edi, 4
ja 0x100fc734
or cl, al
je 0x100fc734
mov edi, dword [ebp + 8]
test esi, esi
jne 0x100fc88e
jmp 0x100fcf46
test bl, bl
je 0x100fc754
add esi, 8
shl edx, 4
jmp 0x100fc748
add esi, 0x10
add edx, 0xfffffff0
je 0x100fc787
cmp dword [esi], edi
jbe 0x100fc740
mov byte [esi + 4], 0
mov dword [esi], edi
jmp 0x100fc740
mov ebx, edx
add esi, 0xc
shl ebx, 4
jmp 0x100fc768
add esi, 0x10
add ebx, 0xfffffff0
je 0x100fc787
mov eax, dword [esi - 4]
sub eax, edi
jbe 0x100fc760
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 0x100fc760
mov edi, dword [ebp + 8]
mov esi, dword [edi]
test esi, esi
je 0x100fd010
mov edx, dword [edi + 8]
cmp edx, 2
jb 0x100fc876
dec edx
lea ebx, [esi + 0x1c]
mov dword [ebp - 0x10], esi
mov ecx, edx
mov edx, 1
jmp 0x100fc7da
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 0x100fc869
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 0x100fc7b0
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 0x100fc7b0
cmp byte [ebx], 0
setne al
cmp byte [edi + esi + 0xc], 0
setne cl
cmp al, cl
je 0x100fc83e
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 0x100fc85c
push eax
push 0
mov eax, dword [0x1035648c]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
add ebx, 0x10
dec ecx
jne 0x100fc7da
mov dword [edi + 8], edx
mov esi, dword [edi]
test esi, esi
je 0x100fd010
cmp edx, 1
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 1
jne 0x100fd017
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 0x100fc8c7
cmp byte [ecx + 0xc], 0
lea ecx, [ecx + 0x10]
lea edx, [ebx - 0x10]
jne 0x100fc8a0
xor ecx, ecx
test esi, esi
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x14], 0
jne 0x100fc903
jmp 0x100fcd04
lea ecx, [ebp - 0x38]
mov edx, esi
push eax
call fcn.100e58a0
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 0x100fcd04
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x100fcc9d
cmp byte [ebp + 0xc], 0
je 0x100fc939
add esi, 8
shl edi, 4
jmp 0x100fc928
add esi, 0x10
add edi, 0xfffffff0
je 0x100fc97d
cmp dword [esi], 6
jb 0x100fc920
mov byte [esi + 4], 0
mov dword [esi], 5
jmp 0x100fc920
add esi, 0xc
shl edi, 4
jmp 0x100fc958
add esi, 0x10
add edi, 0xfffffff0
je 0x100fc97d
mov eax, dword [esi - 4]
cmp eax, 6
jb 0x100fc950
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 0x100fc950
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x100fc999
test esi, esi
je 0x100fc999
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x100fcd04
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x100fcc9d
cmp byte [ebp + 0xc], 0
je 0x100fcab3
add esi, 8
shl edi, 4
jmp 0x100fc9cc
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcae5
cmp dword [esi], 5
jb 0x100fc9c0
mov byte [esi + 4], 0
mov dword [esi], 4
jmp 0x100fc9c0
mov edx, dword [ecx]
test edx, edx
je 0x100fcf46
mov ecx, dword [ecx + 8]
cmp ecx, 2
jb 0x100fcf46
dec ecx
lea esi, [edx + 0x1c]
mov ebx, 1
mov dword [ebp - 0x10], edx
jmp 0x100fca2b
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 0x100fcaab
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 0x100fca01
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 0x100fca01
cmp byte [esi], 0
setne al
cmp byte [edx + ebx + 0xc], 0
setne cl
cmp al, cl
je 0x100fca81
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 0x100fca9f
push eax
push 0
mov eax, dword [0x1035648c]
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 0x100fca2b
mov dword [edi + 8], ebx
jmp 0x100fcf46
add esi, 0xc
shl edi, 4
jmp 0x100fcac8
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcae5
mov eax, dword [esi - 4]
cmp eax, 5
jb 0x100fcac0
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 0x100fcac0
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x100fcb01
test esi, esi
je 0x100fcb01
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x100fcd04
mov edi, dword [edi + 8]
cmp edi, 0x41
jb 0x100fcc9d
cmp byte [ebp + 0xc], 0
je 0x100fcb3c
add esi, 8
shl edi, 4
jmp 0x100fcb2b
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcb73
cmp dword [esi], 4
jb 0x100fcb23
mov byte [esi + 4], 0
mov dword [esi], 3
jmp 0x100fcb23
add esi, 0xc
shl edi, 4
jmp 0x100fcb4c
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcb73
mov eax, dword [esi - 4]
cmp eax, 4
jb 0x100fcb44
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 0x100fcb44
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x100fcb8f
test esi, esi
je 0x100fcb8f
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x100fcd04
mov edi, dword [edi + 8]
cmp edi, 0x41
jb 0x100fcc9d
cmp byte [ebp + 0xc], 0
je 0x100fcbca
add esi, 8
shl edi, 4
jmp 0x100fcbb9
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcbf9
cmp dword [esi], 3
jb 0x100fcbb1
mov byte [esi + 4], 0
mov dword [esi], 2
jmp 0x100fcbb1
add esi, 0xc
shl edi, 4
jmp 0x100fcbda
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcbf9
mov eax, dword [esi - 4]
cmp eax, 3
jb 0x100fcbd2
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 0x100fcbd2
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x100fcc15
test esi, esi
je 0x100fcc15
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x100fcd04
mov edi, dword [edi + 8]
cmp edi, 0xb
jb 0x100fcc9d
cmp byte [ebp + 0xc], 0
je 0x100fcc4c
add esi, 8
shl edi, 4
jmp 0x100fcc3b
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcc7a
cmp dword [esi], 2
jb 0x100fcc33
mov byte [esi + 4], 0
mov dword [esi], 1
jmp 0x100fcc33
add esi, 0xc
shl edi, 4
jmp 0x100fcc5c
add esi, 0x10
add edi, 0xfffffff0
je 0x100fcc7a
mov eax, dword [esi - 4]
cmp eax, 2
jb 0x100fcc54
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 0x100fcc54
mov edi, dword [ebp + 8]
cmp byte [ebp + 0xc], 0
mov esi, dword [edi]
je 0x100fcc96
test esi, esi
je 0x100fcc96
push 1
push edi
call fcn.100fd060
add esp, 8
mov esi, dword [edi]
test esi, esi
je 0x100fcd04
mov edi, dword [edi + 8]
test edi, edi
je 0x100fccfe
mov eax, edi
xor ecx, ecx
shl eax, 4
jmp 0x100fccc6
mov edx, dword [esi + ecx]
movzx edx, byte [edx]
cmp byte [edx + str.743210_._g], 0xf9
ja 0x100fccd3
add ecx, 0x10
cmp eax, ecx
je 0x100fccfe
mov edx, dword [esi + ecx + 8]
cmp edx, 1
je 0x100fccb0
test edx, edx
jne 0x100fccbf
mov dword [ebp - 0x10], esi
add esi, 4
jmp 0x100fcce6
add esi, 0x10
dec edi
je 0x100fcd45
cmp dword [esi], 0
je 0x100fcce0
push dword [esi - 4]
push 0
mov eax, dword [0x1035648c]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fcce0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], esi
test ebx, ebx
jne 0x100fcf46
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x20], eax
je 0x100fcd76
mov ebx, dword [edi + 8]
mov dword [ebp - 0x10], ecx
test ebx, ebx
je 0x100fcf19
mov eax, dword [ebp - 0x14]
cmp ebx, 1
mov ecx, dword [eax + 8]
jne 0x100fcd83
mov edi, dword [ebp - 0x20]
cmp ecx, 3
jb 0x100fcef2
jmp 0x100fcf7c
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x100fcd5f
push dword [ebp - 0x10]
push 0
mov eax, dword [0x1035648c]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
mov dword [edi], 0
jne 0x100fcf46
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 0x100fcf3e
lea edx, [ebx + 0xfffffff]
mov edi, dword [ebp - 0x20]
xor esi, esi
mov eax, edx
and eax, 0xfffffff
cmp eax, 8
jb 0x100fced3
movd xmm0, ecx
mov ecx, dword [ebp - 0x14]
and edx, 7
mov esi, eax
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [0x1024d590]
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 0x100fcdd0
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 0x100fceed
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 0x100fcee0
cmp ecx, 3
jae 0x100fcf4e
mov eax, dword [ebp - 0x14]
mov edi, dword [0x1035648c]
lea esi, [eax + 4]
jmp 0x100fcf06
add esi, 0x10
dec ebx
je 0x100fcf19
cmp dword [esi], 0
je 0x100fcf00
push dword [esi - 4]
push 0
push dword [edi]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fcf00
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0
je 0x100fcf33
mov eax, dword [0x1035648c]
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 0x100fcf7c
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp + 8]
lea esi, [eax + 4]
jmp 0x100fcf64
add esi, 0x10
dec ebx
je 0x100fcfd5
cmp dword [esi], 0
je 0x100fcf5e
push dword [esi - 4]
push 0
mov eax, dword [0x1035648c]
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fcf5e
cmp dword [ebp - 0x18], 0
je 0x100fcf46
test edi, edi
je 0x100fcfb9
mov eax, dword [ebp - 0x18]
mov ebx, dword [0x1035648c]
lea esi, [eax + 4]
jmp 0x100fcfa6
add esi, 0x10
dec edi
je 0x100fcfb9
cmp dword [esi], 0
je 0x100fcfa0
push dword [esi - 4]
push 0
push dword [ebx]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fcfa0
cmp dword [ebp - 0x10], 0
je 0x100fcf46
mov eax, dword [0x1035648c]
push dword [ebp - 0x18]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x100fcf46
cmp dword [edi + 4], 0
je 0x100fcf33
push dword [ebp - 0x14]
push 0
mov eax, dword [0x1035648c]
jmp 0x100fcf2c
push 0x1024f16c
push edx
push eax
call fcn.1002a130
add esp, 0xc
ud2
push 0x1024f14c
push eax
push edi
call fcn.1002a190
add esp, 0xc
ud2
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x58], 0
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x58]
call fcn.100e2df0
ud2
push 0x1024f15c
jmp 0x100fcff3
push 0x1024f13c
jmp 0x100fd004