Function at 0x10059640
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008b4b5
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x100a8080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x34], esi
xor eax, eax
lea ecx, [ebp - 0x2b]
mov dword [ebp - 0x50], eax
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov word [ebp - 0x2c], 0x1a
mov byte [ebp - 0x2b], al
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059693
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10005240
mov dword [ebp - 4], 0
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x100596d0
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100596d0
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call dword [0x1009dfc8]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1005970b
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059701
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7e3
push ecx
push edx
call fcn.100675d1
add esp, 8
xorps xmm0, xmm0
mov word [ebp - 0x2c], 0x2e
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059730
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.10005240
mov dword [ebp - 4], 1
mov edi, dword [esi + 0x40]
test edi, edi
je 0x1005976d
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005976d
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call dword [0x1009dfc8]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x100597a8
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005979e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7e8
push ecx
push edx
call fcn.100675d1
add esp, 8
xorps xmm0, xmm0
mov word [ebp - 0x2c], 0x4f
lea ecx, [ebp - 0x2b]
mov byte [ebp - 0x2b], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x58], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x54], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100597d0
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.10005240
mov dword [ebp - 4], 2
mov edi, dword [esi + 0x44]
test edi, edi
je 0x1005980d
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005980d
lea eax, [ebp - 0x68]
mov ecx, edi
push eax
call dword [0x1009df98]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x10059848
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005983e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7ed
push ecx
push edx
call fcn.100675d1
add esp, 8
mov edi, dword [esi + 0x34]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
test edi, edi
je 0x1005987b
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005987b
lea ecx, [edi + 0xb8]
mov dl, 2
call fcn.10011410
mov eax, dword [0x100acf38]
test eax, eax
je 0x100598bf
mov ecx, dword [esi + 0x30]
cmp ecx, 1
jne 0x10059891
mov eax, dword [eax + 0x4c]
jmp 0x10059899
cmp ecx, 2
jne 0x100598bf
mov eax, dword [eax + 0x50]
cmp eax, dword [esi + 0x2c]
jae 0x100598bf
mov edi, dword [esi + 0x34]
test edi, edi
je 0x100598bf
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100598bf
mov dl, 7
lea ecx, [edi + 0xb8]
call fcn.10011410
mov ecx, dword [esi + 0x24]
test ecx, ecx
jne 0x100598ca
xor eax, eax
jmp 0x100598e1
mov eax, 0x10624dd3
mul ecx
shr edx, 6
imul eax, edx, 0x3e8
push eax
call dword [0x1009df18]
mov ecx, dword [esi + 0x24]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ecx
test eax, eax
je 0x1005a07d
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 3
cmp dword [eax], 0
je 0x100599f6
test ecx, ecx
je 0x100599f6
mov eax, 0x12e0be83
mov edi, ecx
mul ecx
sub edi, edx
shr edi, 1
add edi, edx
shr edi, 0x1d
cmp edi, 4
jae 0x100599f6
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 4], 0x2d
jae 0x100599f6
push 4
push 0x10b8050
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100599f6
mov eax, 0x10624dd3
mul dword [ebp - 0x30]
shr edx, 6
sub edi, edx
imul eax, edi, 0x3e8
add eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
mov ecx, dword [ecx*4 + 0x10b8050]
call dword [0x1009df1c]
mov dword [ebp - 0x30], eax
mov edi, eax
test eax, eax
je 0x100599f8
cmp dword [eax + 0x3c], 0
je 0x100599f8
push dword [esi + 0x24]
xor edx, edx
lea ecx, [ebp - 0x98]
push eax
call fcn.1000b1e0
add esp, 8
lea ecx, [ebp - 0x28]
push eax
call fcn.1000bc40
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x100599f1
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100599e7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7f2
push ecx
push edx
call fcn.100675d1
add esp, 8
mov edi, dword [ebp - 0x30]
jmp 0x10059a51
xor edi, edi
push dword [esi + 0x24]
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x98]
push 0
call fcn.1000b1e0
add esp, 8
lea ecx, [ebp - 0x28]
push eax
call fcn.1000bc40
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x10059a51
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059a47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7f7
push ecx
push edx
call fcn.100675d1
add esp, 8
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x10059a75
push 4
push eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059a75
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
push eax
call dword [0x1009df98]
mov edx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x98]
push edi
call fcn.1000b5b0
add esp, 4
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 4
mov edi, dword [esi + 0x38]
test edi, edi
je 0x10059aad
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059aad
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x10059aeb
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059ae1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a7fc
push ecx
push edx
call fcn.100675d1
add esp, 8
mov eax, dword [esi + 0x30]
cmp eax, 1
jne 0x10059cba
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x4c]
mov edx, dword [esi + 0x2c]
call fcn.1000f790
mov ecx, dword [ebp - 0x3c]
mov eax, 3
mov edi, ecx
mov dword [ebp - 0x50], 0xc
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059b8d
nop
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x1005a806
mov esi, dword [ebp - 0x38]
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x10059b61
lea eax, [ecx + 1]
cmp esi, 0xf
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
sub ecx, edx
inc ecx
push ecx
lea esi, [eax + edx]
lea eax, [esi + 1]
push esi
push eax
call fcn.10069130
add esp, 0xc
mov byte [esi], 0x2e
jmp 0x10059b77
push 0x2e
push 1
push edx
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x30]
push 1
call fcn.1000eb70
mov eax, dword [ebp - 0x2c]
inc edi
add eax, 4
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059b8a
mov ecx, dword [ebp - 0x3c]
jmp 0x10059b20
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
movaps xmm0, xmmword [str.eEHE.E5]
cmova eax, dword [ebp - 0x4c]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x54], 0
nop word [eax + eax]
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0xf
jb 0x10059bb0
sub esp, 0x18
mov byte [ebp - 0x54], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059be0
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x80]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 6
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x10059c27
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059c27
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x10059c5f
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059c55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a801
push ecx
push edx
call fcn.100675d1
add esp, 8
mov byte [ebp - 4], 3
mov edi, 8
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x50], edi
cmp ecx, 0xf
jbe 0x10059e83
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059cab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a801
push ecx
push edx
call fcn.100675d1
add esp, 8
jmp 0x10059e83
cmp eax, 2
jne 0x10059e80
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x4c]
mov edx, dword [esi + 0x2c]
call fcn.1000f790
mov ecx, dword [ebp - 0x3c]
mov eax, 3
mov edi, ecx
mov dword [ebp - 0x50], 0x30
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059d5d
nop word [eax + eax]
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x1005a806
mov esi, dword [ebp - 0x38]
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x10059d31
lea eax, [ecx + 1]
cmp esi, 0xf
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
sub ecx, edx
inc ecx
push ecx
lea esi, [eax + edx]
lea eax, [esi + 1]
push esi
push eax
call fcn.10069130
add esp, 0xc
mov byte [esi], 0x2e
jmp 0x10059d47
push 0x2e
push 1
push edx
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x30]
push 1
call fcn.1000eb70
mov eax, dword [ebp - 0x2c]
inc edi
add eax, 4
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059d5a
mov ecx, dword [ebp - 0x3c]
jmp 0x10059cf0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
movaps xmm0, xmmword [0x100a0090]
cmova eax, dword [ebp - 0x4c]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x54], 0
nop word [eax + eax]
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0xf
jb 0x10059d80
sub esp, 0x18
mov byte [ebp - 0x54], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059db0
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x80]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 8
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x10059df7
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059df7
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x10059e2f
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059e25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a80b
push ecx
push edx
call fcn.100675d1
add esp, 8
mov byte [ebp - 4], 3
mov edi, 0x20
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x50], edi
cmp ecx, 0xf
jbe 0x10059e83
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059cab
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a80b
jmp 0x10059cab
mov edi, dword [ebp - 0x50]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x4c]
mov edx, dword [esi + 0x28]
call fcn.1000f790
mov ecx, dword [ebp - 0x3c]
or edi, 3
mov dword [ebp - 0x50], edi
mov eax, 3
mov edi, ecx
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059f1d
nop dword [eax]
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x1005a806
mov esi, dword [ebp - 0x38]
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x10059ef1
lea eax, [ecx + 1]
cmp esi, 0xf
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
sub ecx, edx
inc ecx
push ecx
lea esi, [eax + edx]
lea eax, [esi + 1]
push esi
push eax
call fcn.10069130
add esp, 0xc
mov byte [esi], 0x2e
jmp 0x10059f07
push 0x2e
push 1
push edx
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x30]
push 1
call fcn.1000eb70
mov eax, dword [ebp - 0x2c]
inc edi
add eax, 4
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x10059f1a
mov ecx, dword [ebp - 0x3c]
jmp 0x10059eb0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
movaps xmm0, xmmword [0x1009fa50]
cmova eax, dword [ebp - 0x4c]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov word [ebp - 0x54], 0x70
nop dword [eax]
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0x10
jb 0x10059f40
sub esp, 0x18
mov byte [ebp - 0x53], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10059f70
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x80]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0xa
mov edi, dword [esi + 0x40]
test edi, edi
je 0x10059fb7
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10059fb7
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x10059fef
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10059fe5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a810
push ecx
push edx
call fcn.100675d1
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x1005a039
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a02f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a810
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1005a760
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a06e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a815
push ecx
push edx
call fcn.100675d1
add esp, 8
jmp 0x1005a760
lea eax, [ecx - 1]
cmp eax, 0x5f5e0fe
ja 0x1005a760
mov edx, dword [esi + 0x54]
sub edx, dword [esi + 0x50]
sar edx, 2
call fcn.1000e480
mov ecx, dword [esi + 0x50]
mov edi, dword [ecx + eax*4 - 4]
test edi, edi
je 0x1005a284
mov eax, 0x10624dd3
mul edi
mov eax, edx
shr eax, 6
mov dword [ebp - 0x30], eax
imul eax, eax, 0x3e8
push eax
call dword [0x1009df18]
mov ecx, eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x1005a284
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xb
cmp dword [ecx], 0
je 0x1005a21b
mov eax, 0x12e0be83
mov esi, edi
mul edi
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 0x1d
cmp esi, 4
jae 0x1005a218
cmp byte [ecx + 4], 0x2d
jae 0x1005a218
push 4
push 0x10b8050
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a215
sub esi, dword [ebp - 0x30]
imul eax, esi, 0x3e8
add eax, edi
push eax
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
mov ecx, dword [ecx*4 + 0x10b8050]
call dword [0x1009df1c]
test eax, eax
je 0x1005a215
cmp dword [eax + 0x3c], 0
je 0x1005a215
push edi
push eax
xor edx, edx
lea ecx, [ebp - 0x98]
call fcn.1000b1e0
add esp, 8
lea ecx, [ebp - 0x28]
push eax
call fcn.1000bc40
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x1005a1bb
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a1b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a81a
push ecx
push edx
call fcn.100675d1
add esp, 8
mov esi, dword [ebp - 0x34]
mov edi, dword [esi + 0x44]
test edi, edi
je 0x1005a1de
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a1de
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call dword [0x1009df98]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1005a284
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a27a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a81f
jmp 0x1005a27a
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x34]
push edi
mov edx, ecx
lea ecx, [ebp - 0x98]
push 0
call fcn.1000b1e0
add esp, 8
lea ecx, [ebp - 0x28]
push eax
call fcn.1000bc40
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x1005a1be
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a26b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a824
push ecx
push edx
call fcn.100675d1
add esp, 8
jmp 0x1005a1be
push ecx
push edx
call fcn.100675d1
add esp, 8
mov eax, dword [esi + 0x30]
cmp eax, 1
jne 0x1005a3bf
mov edx, dword [esi + 0x2c]
push ecx
lea ecx, [ebp - 0x28]
call fcn.1000e990
add esp, 4
mov dword [ebp - 4], 0xc
cmp dword [eax + 0x14], 0xf
jbe 0x1005a2ae
mov eax, dword [eax]
movaps xmm0, xmmword [0x100a0480]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x54], 0
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0xf
jb 0x1005a2c0
sub esp, 0x18
mov byte [ebp - 0x54], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005a2f0
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x80]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0xd
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x1005a337
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a337
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x1005a36f
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a365
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a829
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x1005a584
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a57a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a829
jmp 0x1005a57a
cmp eax, 2
jne 0x1005a584
mov dword [ebp - 4], 0xe
lea ecx, [ebp - 0x4c]
mov edx, dword [esi + 0x2c]
call fcn.1000f790
mov ecx, dword [ebp - 0x3c]
mov eax, 3
mov edi, ecx
mov dword [ebp - 0x50], 0x300
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x1005a45f
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x1005a806
mov esi, dword [ebp - 0x38]
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x1005a433
lea eax, [ecx + 1]
cmp esi, 0xf
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
sub ecx, edx
inc ecx
push ecx
lea esi, [edx + eax]
lea eax, [esi + 1]
push esi
push eax
call fcn.10069130
add esp, 0xc
mov byte [esi], 0x2e
jmp 0x1005a449
push 0x2e
push 1
push edx
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x30]
push 1
call fcn.1000eb70
mov eax, dword [ebp - 0x2c]
inc edi
add eax, 4
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x1005a45c
mov ecx, dword [ebp - 0x3c]
jmp 0x1005a3f2
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
movaps xmm0, xmmword [0x100a0000]
cmova eax, dword [ebp - 0x4c]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x54], 0
nop dword [eax]
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0xf
jb 0x1005a480
sub esp, 0x18
mov byte [ebp - 0x54], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005a4b0
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x80]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0xf
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x1005a4f7
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a4f7
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x1005a52f
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a525
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a82e
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, 0x200
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x50], eax
cmp ecx, 0xf
jbe 0x1005a584
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a57a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a82e
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0x4c]
mov edx, dword [esi + 0x28]
call fcn.1000f790
or dword [ebp - 0x50], 0xc0
mov eax, 3
mov ecx, dword [ebp - 0x3c]
mov edi, ecx
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x1005a61d
nop
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x1005a806
mov esi, dword [ebp - 0x38]
mov eax, esi
sub eax, ecx
cmp eax, 1
jb 0x1005a5f1
lea eax, [ecx + 1]
cmp esi, 0xf
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x4c]
cmova eax, dword [ebp - 0x4c]
sub ecx, edx
inc ecx
push ecx
lea esi, [eax + edx]
lea eax, [esi + 1]
push esi
push eax
call fcn.10069130
add esp, 0xc
mov byte [esi], 0x2e
jmp 0x1005a607
push 0x2e
push 1
push edx
mov byte [ebp - 0x30], 0
lea ecx, [ebp - 0x4c]
push dword [ebp - 0x30]
push 1
call fcn.1000eb70
mov eax, dword [ebp - 0x2c]
inc edi
add eax, 4
mov dword [ebp - 0x2c], eax
cmp edi, eax
jle 0x1005a61a
mov ecx, dword [ebp - 0x3c]
jmp 0x1005a5b0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x38], 0xf
lea eax, [ebp - 0x4c]
movaps xmm0, xmmword [0x1009fc20]
cmova eax, dword [ebp - 0x4c]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x64], xmm0
mov word [ebp - 0x54], 0x60
nop dword [eax]
mov al, byte [ebp - 0x64]
xor byte [ebp + ecx - 0x63], al
inc ecx
cmp ecx, 0x10
jb 0x1005a640
sub esp, 0x18
mov byte [ebp - 0x53], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea edi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005a670
sub ecx, edi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10005240
lea eax, [ebp - 0x98]
push eax
call fcn.10004de0
add esp, 0x20
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 0x11
mov edi, dword [esi + 0x40]
test edi, edi
je 0x1005a6ba
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a6ba
push dword [ebp - 0x30]
mov ecx, edi
call dword [0x1009dfc8]
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x1005a6f8
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a6ee
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a833
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0xf
mov byte [ebp - 0x98], 0
cmp ecx, 0xf
jbe 0x1005a74e
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005a744
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1005a833
push ecx
push edx
call fcn.100675d1
add esp, 8
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
mov edi, dword [esi + 0xfc]
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a7aa
push 4
add edi, 0xe5
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a7aa
cmp byte [edi], al
je 0x1005a7aa
mov edi, dword [esi + 0xfc]
test edi, edi
je 0x1005a7aa
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a7aa
push eax
mov ecx, edi
call dword [0x1009df64]
mov esi, dword [esi + 0x34]
test esi, esi
je 0x1005a7c8
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a7c8
push 1
mov ecx, esi
call dword [0x1009df64]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10067570
mov esp, ebp
pop ebp
ret
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1000ea70
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
call fcn.1006cd3b
int3