Function at 0x10032aa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100799b3
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x1009f084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x54], edi
mov dword [ebp - 4], 0
call fcn.10032700
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
xor eax, eax
movq qword [ebp - 0x1c], xmm0
xor ecx, ecx
mov dword [ebp - 0x64], eax
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 1
mov eax, dword [edi + 0xec]
sub eax, dword [edi + 0xe8]
sar eax, 6
test eax, eax
je 0x10032cd9
mov bl, byte [ebp + 0xc]
xor esi, esi
test bl, bl
je 0x10032b82
cmp dword [ebp + 0x24], 0x10
lea eax, [ebp - 0x63]
mov edx, dword [ebp + 0x20]
lea ecx, [ebp + 0x10]
cmovae ecx, dword [ebp + 0x10]
push 0
mov word [ebp - 0x64], 0x31
push eax
mov byte [ebp - 0x63], 0
call fcn.10002a10
add esp, 8
test eax, eax
jne 0x10032b7a
mov ecx, dword [edi + 0xe8]
movzx eax, bl
cmp dword [ecx + esi + 0x30], eax
jne 0x10032cac
mov eax, dword [edi + 0xe8]
lea ecx, [ebp - 0x1c]
add eax, esi
push eax
call fcn.10034110
jmp 0x10032cac
test bl, bl
jne 0x10032ded
cmp dword [ebp + 0x24], 0x10
lea eax, [ebp - 0x5b]
mov edx, dword [ebp + 0x20]
lea ecx, [ebp + 0x10]
cmovae ecx, dword [ebp + 0x10]
push 0
mov word [ebp - 0x5c], 0x44
push eax
mov byte [ebp - 0x5b], 0
call fcn.10002a10
add esp, 8
test eax, eax
je 0x10032b64
mov eax, dword [edi + 0xe8]
mov ecx, dword [eax + esi + 0x1c]
test ecx, ecx
jne 0x10032bbe
xor ebx, ebx
jmp 0x10032be3
mov eax, 0x10624dd3
mul ecx
mov ecx, 0xd78ae8
shr edx, 6
imul eax, edx, 0x3e8
push eax
call fcn.10015880
mov ecx, eax
call dword [0x1009244c]
mov ebx, eax
mov ecx, dword [edi + 0xe8]
cmp dword [esi + ecx + 0x1c], 0
jbe 0x10032d75
cmp dword [esi + ecx + 0x1c], 0x5f5e100
jae 0x10032d75
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032c30
mov eax, dword [ecx]
jmp 0x10032c32
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp + 0x10]
push 0
push eax
call fcn.10002470
sub esp, 0x18
mov byte [ebp - 4], 2
mov eax, dword [edi + 0xe8]
mov ecx, esp
add eax, esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032c79
mov edx, dword [ecx]
jmp 0x10032c7b
mov edx, ecx
push 0xffffffffffffffff
push 0
push eax
mov byte [edx], 0
call fcn.10002470
mov byte [ebp - 4], 1
call fcn.10014150
add esp, 0x30
test al, al
je 0x10032ca9
mov eax, dword [edi + 0xe8]
lea ecx, [ebp - 0x1c]
add eax, esi
push eax
call fcn.10034110
mov bl, byte [ebp + 0xc]
mov eax, dword [edi + 0xec]
add esi, 0x40
mov ecx, dword [ebp - 0x60]
sub eax, dword [edi + 0xe8]
inc ecx
sar eax, 6
mov dword [ebp - 0x60], ecx
cmp ecx, eax
jb 0x10032b23
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x64], eax
mov ebx, edx
sub ebx, ecx
cmp ebx, 0x40
jae 0x10032f60
mov eax, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
lea ebx, [edi + 0xac]
mov edi, 0xc
mov esi, dword [ebx]
test esi, esi
je 0x10032d13
push 4
push esi
call eax
test eax, eax
jne 0x10032d0e
push eax
mov ecx, esi
call dword [0x10092478]
mov eax, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
add ebx, 4
sub edi, 1
jne 0x10032cf6
mov edi, dword [ebp - 0x54]
mov esi, dword [edi + 0x194]
mov ebx, dword [edi + 0x19c]
test esi, esi
je 0x10032d40
push 4
push esi
call eax
test eax, eax
jne 0x10032d40
push ebx
mov ecx, esi
call dword [0x100924a4]
mov ebx, dword [ebp - 0x1c]
mov dword [edi + 0x1a0], 1
test ebx, ebx
je 0x10033991
mov edi, dword [ebp - 0x18]
mov esi, ebx
cmp ebx, edi
je 0x10033982
mov ecx, esi
call fcn.10035350
add esi, 0x40
cmp esi, edi
jne 0x10032d62
jmp 0x10033982
test ebx, ebx
je 0x10032ca9
mov edx, dword [edi + 0xe8]
mov cl, byte [ebx + 4]
mov edx, dword [edx + esi + 0x1c]
call fcn.10012020
sub esp, 0x18
mov dword [ebp - 0x50], eax
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032dc0
mov eax, dword [ecx]
jmp 0x10032dc2
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp + 0x10]
push 0
push eax
call fcn.10002470
mov byte [ebp - 4], 3
sub esp, 0x18
mov edx, ebx
mov ecx, esp
push dword [ebp - 0x50]
call fcn.10012420
add esp, 4
jmp 0x10032c88
cmp dword [ebp + 0x24], 0x10
lea eax, [ebp - 0x57]
mov edx, dword [ebp + 0x20]
lea ecx, [ebp + 0x10]
cmovae ecx, dword [ebp + 0x10]
push 0
mov word [ebp - 0x58], 0x3f
push eax
mov byte [ebp - 0x57], 0
call fcn.10002a10
add esp, 8
test eax, eax
je 0x10032b64
mov ecx, dword [edi + 0xe8]
movzx eax, bl
cmp dword [ecx + esi + 0x30], eax
jne 0x10032cac
mov eax, ecx
mov ecx, dword [eax + esi + 0x1c]
test ecx, ecx
jne 0x10032e3c
xor ebx, ebx
jmp 0x10032e61
mov eax, 0x10624dd3
mul ecx
mov ecx, 0xd78ae8
shr edx, 6
imul eax, edx, 0x3e8
push eax
call fcn.10015880
mov ecx, eax
call dword [0x1009244c]
mov ebx, eax
mov ecx, dword [edi + 0xe8]
cmp dword [ecx + esi + 0x1c], 0
jbe 0x10032efa
cmp dword [ecx + esi + 0x1c], 0x5f5e100
jae 0x10032efa
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032eaa
mov eax, dword [ecx]
jmp 0x10032eac
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp + 0x10]
push 0
push eax
call fcn.10002470
sub esp, 0x18
mov byte [ebp - 4], 4
mov eax, dword [edi + 0xe8]
mov ecx, esp
add eax, esi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032c79
mov edx, dword [ecx]
jmp 0x10032c7b
test ebx, ebx
je 0x10032ca9
mov edx, dword [edi + 0xe8]
mov cl, byte [ebx + 4]
mov edx, dword [edx + esi + 0x1c]
call fcn.10012020
sub esp, 0x18
mov dword [ebp - 0x50], eax
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x10032f45
mov eax, dword [ecx]
jmp 0x10032f47
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp + 0x10]
push 0
push eax
call fcn.10002470
mov byte [ebp - 4], 5
jmp 0x10032dd6
lea eax, [ebp - 0x50]
sar ebx, 6
push eax
push ebx
mov dword [ebp - 0x50], 0x10032470
mov dword [ebp - 0x74], ebx
call fcn.10034400
movd xmm0, ebx
mov eax, ebx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10094200]
divsd xmm0, qword [0x10093bb8]
movsd qword [ebp - 0x70], xmm0
fld qword [ebp - 0x70]
fstp qword [esp]
call fcn.10072e00
fstp qword [ebp - 0x70]
movsd xmm0, qword [ebp - 0x70]
movsd qword [esp], xmm0
call fcn.1002be80
fnstcw word [ebp - 0x56]
movzx eax, word [ebp - 0x56]
add esp, 8
or eax, 0xc00
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov dword [ebp - 0x50], eax
or ecx, 0xffffffff
fldcw word [ebp - 0x50]
fistp qword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
mov dword [edi + 0x1a0], eax
mov eax, dword [ebp + 8]
fldcw word [ebp - 0x56]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [ebp - 0x6c], eax
lea esi, [eax - 0xc]
mov dword [ebp - 0x50], esi
cmp esi, eax
jge 0x1003393d
nop
inc ecx
mov dword [ebp - 0x58], ecx
cmp ecx, 0xe
jg 0x1003393d
mov eax, dword [ebp - 0x74]
dec eax
cmp esi, eax
jle 0x10033037
mov esi, dword [edi + ecx*4 + 0xac]
test esi, esi
je 0x1003392d
push 4
push esi
call ebx
test eax, eax
jne 0x1003392a
push eax
jmp 0x10033922
mov edx, esi
mov esi, dword [ebp - 0x1c]
shl edx, 6
add esi, edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], esi
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x10033052
xor ebx, ebx
jmp 0x1003307a
mov eax, 0x10624dd3
mul ecx
mov ecx, 0xd78ae8
shr edx, 6
imul eax, edx, 0x3e8
push eax
call fcn.10015880
mov ecx, eax
call dword [0x1009244c]
mov edx, dword [ebp - 0x60]
mov ebx, eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x54], ebx
test eax, eax
je 0x100332b1
cmp eax, 0x5f5e100
jae 0x100332b1
mov ecx, dword [ebp - 0x58]
mov eax, dword [esi + 0x18]
lea ebx, [ecx*8]
sub ebx, ecx
mov ecx, dword [edi + 0xdc]
shl ebx, 3
mov dword [ebx + ecx + 0x1c], eax
mov ecx, dword [edi + 0xdc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [edx + eax + 0x1c]
mov dword [ebx + ecx + 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [edi + 0xdc]
add eax, 0x34
add eax, edx
add ecx, 0x24
push eax
add ecx, ebx
call fcn.100351a0
mov ecx, dword [edi + 0xdc]
mov edx, esi
mov ecx, dword [ebx + ecx]
call fcn.10015710
mov eax, dword [edi + 0xdc]
mov esi, eax
mov edx, dword [eax + ebx + 0x28]
sub edx, dword [eax + ebx + 0x24]
sar edx, 2
call fcn.10013de0
mov ecx, dword [esi + ebx + 0x24]
mov esi, dword [ecx + eax*4 - 4]
mov dword [ebp - 0x60], esi
test esi, esi
je 0x100334d6
mov eax, 0x10624dd3
mov ecx, 0xd78ae8
mul esi
shr edx, 6
imul eax, edx, 0x3e8
push eax
call fcn.10015880
mov ecx, eax
call dword [0x1009244c]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x100334d6
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 4], 6
mov edx, esi
mov cl, byte [eax + 4]
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x34], 0
call fcn.10012020
mov esi, eax
test esi, esi
je 0x10033198
cmp dword [esi + 0x48], 0
je 0x10033198
push dword [ebp - 0x60]
xor edx, edx
lea ecx, [ebp - 0x8c]
push esi
call fcn.10012090
add esp, 8
lea ecx, [ebp - 0x34]
push eax
call fcn.100074c0
lea ecx, [ebp - 0x8c]
call fcn.10002360
jmp 0x100331d2
push dword [ebp - 0x60]
mov edx, dword [ebp - 0x54]
lea ecx, [ebp - 0x8c]
push 0
call fcn.10012090
add esp, 8
lea ecx, [ebp - 0x34]
push eax
call fcn.100074c0
mov eax, dword [ebp - 0x78]
cmp eax, 0x10
jb 0x100331d2
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002790
mov eax, dword [edi + 0xdc]
cmp dword [ebx + eax + 0x18], 0
je 0x1003328c
mov ecx, dword [ebx + eax + 0x18]
lea edx, [ebp - 0x34]
add ecx, 4
call fcn.10013af0
mov eax, dword [edi + 0xdc]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x50], ecx
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x54], esi
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x58], 1
test esi, esi
je 0x10033230
movsx edx, word [esi + 0x56]
movsx eax, word [ecx + 0x66]
add edx, eax
jmp 0x10033234
movsx edx, word [ecx + 0x66]
mov eax, dword [edi + 0xdc]
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x5c], edx
mov eax, dword [edi + 0xdc]
mov ecx, dword [ebx + eax + 0x18]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
cmp dword [eax], 0
je 0x1003328f
mov eax, dword [edi + 0xdc]
lea edx, [ebp - 0x34]
mov ecx, dword [ebx + eax + 0x18]
mov ecx, dword [ecx]
call fcn.100155d0
mov eax, dword [edi + 0xdc]
mov dl, 1
mov ecx, dword [ebx + eax + 0x18]
mov ecx, dword [ecx]
call fcn.10015570
jmp 0x1003328f
mov esi, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x20]
cmp eax, 0x10
jb 0x100334d9
inc eax
lea ecx, [ebp - 0x34]
push eax
push dword [ebp - 0x34]
call fcn.10002790
jmp 0x100334d9
test ebx, ebx
jne 0x100332c3
mov ecx, dword [ebp - 0x58]
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
jmp 0x10033015
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 4], 7
mov edx, eax
mov cl, byte [ebx + 4]
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x4c], 0
call fcn.10012020
mov dword [ebp - 0x60], eax
test eax, eax
je 0x1003330f
cmp dword [eax + 0x48], 0
je 0x1003330f
push dword [esi + 0x1c]
xor edx, edx
lea ecx, [ebp - 0x8c]
push eax
call fcn.10012090
add esp, 8
lea ecx, [ebp - 0x4c]
push eax
call fcn.100074c0
jmp 0x10033361
push dword [esi + 0x1c]
mov edx, ebx
lea ecx, [ebp - 0x8c]
push 0
call fcn.10012090
add esp, 8
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x4c]
cmp ecx, eax
je 0x1003335d
mov eax, dword [ebp - 0x38]
cmp eax, 0x10
jb 0x10033340
inc eax
push eax
push dword [ebp - 0x4c]
call fcn.10002790
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x3c], 0
mov byte [ebp - 0x4c], 0
call fcn.10005910
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x78]
cmp eax, 0x10
jb 0x1003337c
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002790
push dword [ebp - 0x60]
mov edx, ebx
lea ecx, [ebp - 0x8c]
call fcn.10012420
add esp, 4
mov byte [ebp - 4], 9
mov edx, eax
mov ecx, dword [ebp - 0x58]
lea ebx, [ecx*8]
sub ebx, ecx
mov ecx, dword [edi + 0xdc]
shl ebx, 3
mov ecx, dword [ebx + ecx]
call fcn.10015710
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x78]
cmp eax, 0x10
jb 0x100333d1
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002790
mov ecx, dword [edi + 0xdc]
mov eax, dword [esi + 0x18]
mov dword [ebx + ecx + 0x1c], eax
mov ecx, dword [edi + 0xdc]
mov eax, dword [esi + 0x1c]
mov dword [ebx + ecx + 0x20], eax
mov eax, dword [edi + 0xdc]
cmp dword [ebx + eax + 0x18], 0
je 0x100334bb
mov ecx, dword [ebx + eax + 0x18]
lea edx, [ebp - 0x4c]
add ecx, 4
call fcn.10013af0
mov eax, dword [edi + 0xdc]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x50], ecx
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x54], edx
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x58], 1
test edx, edx
je 0x1003344c
movsx edx, word [edx + 0x56]
movsx eax, word [ecx + 0x66]
add edx, eax
jmp 0x10033450
movsx edx, word [ecx + 0x66]
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov dword [eax + 0x5c], edx
mov eax, dword [edi + 0xdc]
mov ecx, dword [ebx + eax + 0x18]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
cmp dword [eax], 0
je 0x100334bb
mov eax, dword [edi + 0xdc]
lea edx, [ebp - 0x4c]
mov ecx, dword [ebx + eax + 0x18]
mov ecx, dword [ecx]
call fcn.100155d0
mov eax, dword [edi + 0xdc]
mov eax, dword [ebx + eax + 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x100334bb
push 4
push eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100334bb
mov ecx, dword [ebp - 0x54]
push 1
call dword [0x10092478]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x38]
cmp eax, 0x10
jb 0x100334d9
inc eax
lea ecx, [ebp - 0x4c]
push eax
push dword [ebp - 0x4c]
call fcn.10002790
jmp 0x100334d9
mov esi, dword [ebp - 0x5c]
mov eax, dword [esi + 0x24]
cmp eax, 1
jne 0x1003359e
mov edx, dword [esi + 0x20]
push ecx
lea ecx, [ebp - 0x8c]
call fcn.10014300
add esp, 4
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 0x10
jb 0x10033503
mov eax, dword [eax]
movaps xmm0, xmmword [str.rR_R91R_]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x30], xmm0
mov byte [ebp - 0x20], 0
mov al, byte [ebp - 0x30]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xf
jb 0x10033515
sub esp, 0x18
mov byte [ebp - 0x20], 0
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x14], 0xf
cmp dword [edx + 0x14], 0x10
mov dword [edx + 0x10], 0
jb 0x10033551
mov eax, dword [edx]
jmp 0x10033553
mov eax, edx
mov byte [eax], 0
cmp byte [ebp - 0x2f], 0
jne 0x10033560
xor ecx, ecx
jmp 0x1003357a
lea ecx, [ebp - 0x2f]
lea eax, [ecx + 1]
mov dword [ebp - 0x54], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10033570
sub ecx, dword [ebp - 0x54]
push ecx
lea eax, [ebp - 0x2f]
mov ecx, edx
push eax
call fcn.100028b0
lea eax, [ebp - 0xa4]
push eax
call fcn.10005a00
add esp, 0x20
mov byte [ebp - 4], 0xb
jmp 0x10033659
cmp eax, 2
jne 0x100336c2
mov edx, dword [esi + 0x20]
push ecx
lea ecx, [ebp - 0x8c]
call fcn.10014300
add esp, 4
mov byte [ebp - 4], 0xc
cmp dword [eax + 0x14], 0x10
jb 0x100335c5
mov eax, dword [eax]
movaps xmm0, xmmword [0x10094680]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x30], xmm0
mov byte [ebp - 0x20], 0
mov al, byte [ebp - 0x30]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xf
jb 0x100335d7
sub esp, 0x18
mov byte [ebp - 0x20], 0
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x14], 0xf
cmp dword [edx + 0x14], 0x10
mov dword [edx + 0x10], 0
jb 0x10033613
mov eax, dword [edx]
jmp 0x10033615
mov eax, edx
mov byte [eax], 0
cmp byte [ebp - 0x2f], 0
jne 0x10033622
xor ecx, ecx
jmp 0x1003363a
lea ecx, [ebp - 0x2f]
lea eax, [ecx + 1]
mov dword [ebp - 0x54], eax
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10033630
sub ecx, dword [ebp - 0x54]
push ecx
lea eax, [ebp - 0x2f]
mov ecx, edx
push eax
call fcn.100028b0
lea eax, [ebp - 0xa4]
push eax
call fcn.10005a00
add esp, 0x20
mov byte [ebp - 4], 0xd
mov ecx, dword [edi + 0xdc]
mov edx, eax
mov ecx, dword [ebx + ecx + 4]
call fcn.10015710
mov eax, dword [ebp - 0x90]
cmp eax, 0x10
jb 0x10033688
inc eax
lea ecx, [ebp - 0xa4]
push eax
push dword [ebp - 0xa4]
call fcn.10002790
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x78]
mov byte [ebp - 0xa4], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0xf
cmp eax, 0x10
jb 0x100336c2
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002790
mov edx, dword [esi + 0x28]
push ecx
lea ecx, [ebp - 0x8c]
call fcn.10014300
add esp, 4
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 0x10
jb 0x100336e0
mov eax, dword [eax]
movaps xmm0, xmmword [0x10093df0]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x30], xmm0
mov word [ebp - 0x20], 0x43
mov al, byte [ebp - 0x30]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0x10
jb 0x100336f4
sub esp, 0x18
mov byte [ebp - 0x1f], 0
mov edx, esp
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x14], 0xf
cmp dword [edx + 0x14], 0x10
mov dword [edx + 0x10], 0
jb 0x10033730
mov eax, dword [edx]
jmp 0x10033732
mov eax, edx
mov byte [eax], 0
cmp byte [ebp - 0x2f], 0
jne 0x1003373f
xor ecx, ecx
jmp 0x10033752
lea ecx, [ebp - 0x2f]
lea eax, [ecx + 1]
mov dword [ebp - 0x54], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10033748
sub ecx, dword [ebp - 0x54]
push ecx
lea eax, [ebp - 0x2f]
mov ecx, edx
push eax
call fcn.100028b0
lea eax, [ebp - 0xa4]
push eax
call fcn.10005a00
add esp, 0x20
mov byte [ebp - 4], 0xf
mov edx, eax
mov ecx, dword [edi + 0xdc]
mov ecx, dword [ebx + ecx + 8]
call fcn.10015710
mov eax, dword [ebp - 0x90]
cmp eax, 0x10
jb 0x100337a0
inc eax
lea ecx, [ebp - 0xa4]
push eax
push dword [ebp - 0xa4]
call fcn.10002790
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x90], 0xf
mov dword [ebp - 0x94], 0
mov byte [ebp - 0xa4], 0
cmp eax, 0x10
jb 0x100337da
inc eax
lea ecx, [ebp - 0x8c]
push eax
push dword [ebp - 0x8c]
call fcn.10002790
mov ecx, dword [0x100a43bc]
mov dword [ebp - 0x78], 0xf
mov dword [ebp - 0x7c], 0
mov byte [ebp - 0x8c], 0
test ecx, ecx
je 0x1003388f
mov edx, dword [esi + 0x24]
cmp edx, 1
jne 0x1003380d
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x20]
jb 0x1003381a
cmp edx, 2
jne 0x1003388f
mov eax, dword [ecx + 0x48]
cmp eax, dword [esi + 0x20]
jae 0x1003388f
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 4]
test esi, esi
je 0x10033842
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10033842
push 0xffff0000
mov ecx, esi
call dword [0x100924a8]
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 0xc]
test esi, esi
je 0x1003386a
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1003386a
lea ecx, [esi + 0xd0]
mov dl, 7
call fcn.100157b0
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test esi, esi
je 0x10033909
push 4
push esi
call ebx
test eax, eax
jne 0x10033909
mov dl, 7
jmp 0x100338fe
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 4]
test esi, esi
je 0x100338b7
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100338b7
push 0xfffff3ae
mov ecx, esi
call dword [0x100924a8]
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 0xc]
test esi, esi
je 0x100338df
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100338df
lea ecx, [esi + 0xd0]
mov dl, 2
call fcn.100157b0
mov eax, dword [edi + 0xdc]
mov esi, dword [ebx + eax + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test esi, esi
je 0x10033909
push 4
push esi
call ebx
test eax, eax
jne 0x10033909
mov dl, 2
lea ecx, [esi + 0xd0]
call fcn.100157b0
mov ecx, dword [ebp - 0x58]
mov esi, dword [edi + ecx*4 + 0xac]
test esi, esi
je 0x1003392d
push 4
push esi
call ebx
test eax, eax
jne 0x1003392a
push 1
mov ecx, esi
call dword [0x10092478]
mov ecx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x50]
inc esi
mov dword [ebp - 0x50], esi
cmp esi, dword [ebp - 0x6c]
jl 0x10033000
mov esi, dword [edi + 0x194]
mov eax, dword [edi + 0x19c]
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x10033964
push 4
push esi
call ebx
test eax, eax
jne 0x10033964
push dword [ebp - 0x6c]
mov ecx, esi
call dword [0x100924a4]
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x10033991
mov edi, dword [ebp - 0x18]
mov esi, ebx
cmp ebx, edi
je 0x10033982
mov ecx, esi
call fcn.10035350
add esi, 0x40
cmp esi, edi
jne 0x10033974
mov eax, dword [ebp - 0x64]
sub eax, ebx
sar eax, 6
push eax
push ebx
call fcn.100352a0
mov eax, dword [ebp + 0x24]
cmp eax, 0x10
jb 0x100339a6
inc eax
lea ecx, [ebp + 0x10]
push eax
push dword [ebp + 0x10]
call fcn.10002790
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003bc25
mov esp, ebp
pop ebp
ret 0x20