Function at 0x10015dd
Capabilities:
Allocate or change rwx memory
Encode data using xor

Disassembly:
pushfd
push ebp
mov ebp, esp
sub esp, 0x98
mov dword [ebp - 0x94], eax
lea eax, [ebp + 4]
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], edi
mov edi, dword [eax + 4]
mov esi, dword [0x10fb370]
sub eax, 4
mov dword [ebp - 0x70], eax
mov eax, dword [edi]
shr eax, 4
lea ecx, [esi + eax - 1]
xor edx, edx
mov eax, ecx
div esi
sub ecx, edx
mov eax, dword [0x10fb370]
mov dword [ebp - 0x28], ecx
mov eax, dword [0x1007420]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x10fb370]
mov eax, dword [0x1007420]
test eax, eax
je 0x10016c8
xor esi, esi
mov eax, dword [0x1007420]
dec eax
lea ecx, [eax + 1]
xor eax, eax
test ecx, ecx
mov edx, ecx
je 0x1001685
mov ebx, dword [0x138b4cc]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x138b4cc], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x100165e
xor edx, edx
div ecx
cmp dword [ebp - 0x3c], 0
jbe 0x10016c2
inc esi
mov eax, 0xef0b
lea ebx, [edx*4 + 0x1388f9c]
mov ecx, 0xffff10f4
lock cmpxchg dword [ebx], ecx
cmp eax, 0xef0b
je 0x100187d
lea eax, [edx + 1]
xor edx, edx
mov ecx, dword [0x1007420]
div ecx
cmp esi, dword [ebp - 0x3c]
jb 0x100168f
xor esi, esi
test esi, esi
jne 0x100173e
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
mov ebx, eax
push 0x40
inc esi
push 0x1000
push dword [ebp - 0x28]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x1001890
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, 0x11
jb 0x10016d2
xor esi, esi
cmp dword [0x138b2f8], esi
ja 0x100170b
test esi, 3
je 0x100171f
test esi, esi
je 0x100171d
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
xor esi, esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
je 0x1001635
mov ecx, dword [ebp - 0x28]
mov eax, esi
test ecx, ecx
je 0x100173e
mov byte [eax], 0
inc eax
dec ecx
jne 0x1001737
mov eax, 0x2c1f2aae
mov eax, dword [edi]
mov ecx, eax
shr ecx, 1
and ecx, 7
shr eax, 4
lea ecx, [ecx + edi + 8]
mov dword [ebp - 0x38], ecx
sub dword [ebp - 0x38], 0x1000000
mov dword [ebp - 0x3c], ecx
lea edx, [eax + ecx]
mov ecx, dword [0x10fb370]
mov dword [ebp - 0x6c], eax
sub ecx, eax
mov dword [ebp - 0x40], edx
inc ecx
xor eax, eax
test ecx, ecx
mov edx, ecx
je 0x10017a1
mov edi, dword [0x138b4cc]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x138b4cc], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x100177a
xor edx, edx
div ecx
lea eax, [edx + esi]
push eax
push dword [ebp - 0x6c]
mov dword [ebp - 0x68], eax
push dword [ebp - 0x38]
mov eax, 0x76a1cfee
mov eax, dword [ebp - 0x40]
mov edi, dword [eax + 4]
mov esi, dword [eax]
lea eax, [ebp - 0x80]
push eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], edi
mov byte [ebp - 0xd], 0
mov eax, 0x86ed81d
mov ecx, dword [0x102c94c]
mov eax, 0xfffffff
and dword [ebp - 0x24], 0
and dword [ebp - 0x20], 0
and esi, eax
and edi, eax
mov eax, 0x1000000
add esi, 0x1000000
add esp, 0x10
mov ebx, esi
mov dword [ebp - 0x2c], edi
sub eax, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x44], eax
jne 0x1001897
and dword [ebp - 0x14], 0
test edi, edi
jbe 0x1001afb
mov edi, 0x7acd5b43
mov esi, 0x8532a4bd
mov ecx, 0x7fffffff
mov edx, esi
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov dword [ebp - 0x60], edx
sar edx, 0x1f
and edx, ecx
add edx, dword [ebp - 0x60]
mov eax, edx
imul eax, eax, 0x1c57
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x2c]
jb 0x1001825
jmp 0x1001afb
mov eax, dword [0x10fb370]
imul eax, edx
lea esi, [eax + section..data]
jmp 0x10016c4
mov esi, eax
jmp 0x10016fb
mov esi, 0x1000000
mov eax, edi
mov edx, dword [0x100003c]
add eax, ebx
mov ecx, ebx
lea edx, [edx + 0x10000a0]
mov dword [ebp - 0x34], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x1c], edx
add eax, esi
mov edx, 0xfffff000
sub ecx, esi
mov esi, ecx
mov edi, ecx
and esi, edx
sub edi, esi
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x2c]
add ecx, edi
mov edi, ecx
and edi, edx
mov edx, dword [ebp - 0x1c]
sub ecx, edi
add edx, eax
cmp eax, edx
mov dword [ebp - 0x54], ecx
mov ecx, eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], edx
jmp 0x10018f5
cmp dword [ecx], esi
jae 0x10018fa
add ecx, dword [ecx + 4]
cmp ecx, edx
mov dword [ebp - 0x4c], ecx
jne 0x10018ec
and dword [ebp - 0x48], 0
cmp ecx, edx
je 0x100192b
cmp dword [ecx], esi
jne 0x100192b
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x100192b
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x5c]
jae 0x100192b
inc dword [ebp - 0x48]
inc ecx
inc ecx
cmp dword [ebp - 0x48], eax
jne 0x1001913
mov edi, 0x7acd5b43
mov esi, 0x8532a4bd
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x4c]
jmp 0x1001942
mov ebx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x50]
je 0x1001a9a
mov eax, dword [ebp - 0x58]
cmp dword [edx], eax
ja 0x1001a9a
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x4c]
jne 0x1001986
add edx, dword [edx + 4]
mov dword [ebp - 0x4c], edx
cmp edx, dword [ebp - 0x50]
je 0x1001a9a
mov eax, dword [ebp - 0x58]
cmp dword [edx], eax
ja 0x1001a9a
and dword [ebp - 0x48], 0
jmp 0x1001956
mov eax, dword [ebp - 0x58]
cmp dword [edx], eax
jne 0x10019a3
mov eax, dword [ebp - 0x48]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x54]
jae 0x1001a9a
mov eax, dword [ebp - 0x48]
inc dword [ebp - 0x48]
mov ebx, 0xf000
test word [edx + eax*2 + 8], bx
je 0x100193f
movzx eax, word [edx + eax*2 + 8]
mov edx, dword [edx]
and dword [ebp - 0x14], 0
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov edx, eax
sub edx, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], edx
je 0x1001a30
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + edx]
sub eax, edi
mov edx, esi
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
lea ebx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub ebx, eax
mov edx, ebx
sar edx, 0x1f
and edx, ecx
add edx, ebx
mov eax, edx
imul eax, eax, 0x1c57
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jb 0x10019d9
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
sub eax, dword [ebp - 0x44]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x78], eax
mov edx, esi
mov eax, dword [ebp - 0x14]
movzx eax, byte [ebp + eax - 0x78]
sub eax, edi
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
lea ebx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub ebx, eax
mov edx, ebx
sar edx, 0x1f
and edx, ecx
add edx, ebx
mov eax, edx
imul eax, eax, 0x1c57
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
mov dword [ebp - 0x20], eax
jb 0x1001a3c
mov ebx, dword [ebp - 0x28]
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x100193a
mov eax, dword [ebp - 0x34]
and dword [ebp - 0x14], 0
sub eax, ebx
mov dword [ebp - 0x1c], eax
je 0x1001afb
mov edx, esi
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x24], eax
add eax, dword [ebp - 0x20]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov dword [ebp - 0x60], edx
sar edx, 0x1f
and edx, ecx
add edx, dword [ebp - 0x60]
mov eax, edx
imul eax, eax, 0x1c57
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jb 0x1001aa8
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x24]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x1001aff
mov eax, 0x1f445ea3
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x6c]
and eax, 7
mov dword [ebp - 0x28], eax
je 0x1001cdf
mov edi, dword [ebp - 0x38]
cmp eax, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x18], ebx
not edi
jle 0x1001b6a
push 0x38
pop edx
movzx ebx, byte [esi]
cmp dword [ebp - 0x18], 4
jge 0x1001b57
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x2c], ebx
jmp 0x1001b5e
mov ecx, edx
shl ebx, cl
or dword [ebp - 0x14], ebx
inc esi
inc dword [ebp - 0x18]
sub edx, 8
cmp dword [ebp - 0x18], eax
jl 0x1001b44
mov eax, dword [ebp - 0x38]
movzx edx, word [ebp - 6]
movzx ebx, word [ebp - 0xa]
sub eax, edx
xor eax, dword [ebp - 0xc]
xor edi, eax
mov eax, dword [ebp - 8]
xor eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], ebx
xor eax, edi
xor eax, dword [ebp - 0x38]
mov ecx, eax
sub ecx, edx
rol ecx, 1
imul ebx, ecx
mov ecx, eax
shr ecx, 0xb
xor ebx, ecx
movzx ecx, word [ebp - 0xc]
xor edi, ebx
movzx ebx, word [ebp - 8]
mov dword [ebp - 0x1c], ebx
mov ebx, edi
ror ebx, 0xd
sub ebx, ecx
imul ebx, dword [ebp - 0x1c]
xor eax, ebx
mov ebx, eax
mov ecx, eax
sub ecx, dword [ebp - 0xc]
ror ecx, 9
imul edx, ecx
ror ebx, 0xd
sub edx, ebx
mov ecx, dword [ebp - 0xc]
xor edi, edx
sub ecx, edi
mov ebx, edi
movzx edx, word [ebp - 8]
rol ecx, 6
imul ecx, edx
rol ebx, 4
xor ebx, ecx
movzx edx, word [ebp - 0xc]
xor eax, ebx
mov ebx, dword [ebp - 0x18]
mov ecx, eax
xor ecx, edx
mov edx, eax
rol ecx, 3
imul ebx, ecx
ror edx, 8
xor edx, ebx
mov ecx, dword [ebp - 8]
xor edi, edx
movzx edx, word [ebp - 0xc]
mov ebx, edi
xor ecx, edi
rol ecx, 7
imul ecx, edx
shr ebx, 7
sub ecx, ebx
xor eax, ecx
mov ecx, eax
mov ebx, eax
xor ecx, edx
mov edx, ecx
movzx ecx, word [ebp - 6]
imul edx, ecx
ror ebx, 0xe
sub edx, ebx
xor edi, edx
movzx edx, word [ebp - 8]
mov ebx, edi
mov ecx, edi
sub ecx, dword [ebp - 0xc]
ror ecx, 0xb
imul ecx, edx
ror ebx, 4
xor ebx, ecx
xor eax, ebx
mov edx, eax
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
xor ecx, eax
rol ecx, 0xa
imul ebx, ecx
mov ecx, dword [ebp - 0x18]
and dword [ebp - 0x18], 0
rol edx, 0xa
sub ebx, edx
movzx edx, word [ebp - 0xc]
xor edi, ebx
mov ebx, edi
xor ecx, edi
imul ecx, edx
xor edi, dword [ebp - 0x14]
ror ebx, 3
add ebx, ecx
mov ecx, edi
xor ebx, dword [ebp - 0x2c]
xor eax, ebx
mov ebx, dword [ebp - 0x28]
test ebx, ebx
mov dword [ebp - 0x30], eax
jle 0x1001cb5
cmp dword [ebp - 0x18], 4
jge 0x1001c9c
rol dword [ebp - 0x30], 8
mov dl, byte [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
inc dword [ebp - 0x34]
xor byte [ebp - 0xd], dl
mov byte [ebx], dl
jmp 0x1001caa
mov edx, dword [ebp - 0x34]
inc dword [ebp - 0x34]
rol ecx, 8
xor byte [ebp - 0xd], cl
mov byte [edx], cl
inc dword [ebp - 0x18]
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x18], ebx
jl 0x1001c82
add ebx, 0xfffffffc
test ebx, ebx
jle 0x1001ccc
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edi, cl
shl edi, cl
mov edx, edi
jmp 0x1001cee
xor edx, edx
test ebx, ebx
jge 0x1001cee
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x1001cee
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
not eax
mov dword [ebp - 0x14], eax
xor edx, edx
xor eax, eax
mov edi, dword [ebp - 0x6c]
shr edi, 3
test edi, edi
jbe 0x1001ec9
mov ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x74], ecx
movzx ecx, word [ebp - 6]
mov dword [ebp - 0x44], ecx
neg dword [ebp - 0x44]
mov dword [ebp - 0x28], ecx
movzx ecx, word [ebp - 0xa]
mov dword [ebp - 0x18], ecx
movzx ecx, word [ebp - 0xc]
mov dword [ebp - 0x5c], ecx
movzx ecx, byte [esi]
movzx ebx, byte [esi + 5]
shl ecx, 8
movzx edi, byte [esi + 1]
or ecx, edi
movzx edi, byte [esi + 2]
shl ecx, 8
or ecx, edi
movzx edi, byte [esi + 3]
shl ecx, 8
or ecx, edi
movzx edi, byte [esi + 4]
xor eax, ecx
shl edi, 8
or edi, ebx
movzx ebx, byte [esi + 6]
shl edi, 8
or edi, ebx
mov dword [ebp - 0x30], ecx
movzx ebx, byte [esi + 7]
shl edi, 8
mov ecx, eax
or edi, ebx
sub ecx, dword [ebp - 0x28]
mov dword [ebp - 0x60], edi
mov ebx, dword [ebp - 0x28]
xor ecx, dword [ebp - 0xc]
add esi, 8
xor ecx, edi
xor edx, ecx
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x74]
xor ecx, edx
xor eax, ecx
mov ecx, dword [ebp - 0x44]
add ecx, eax
rol ecx, 1
imul edi, ecx
mov ecx, eax
shr ecx, 0xb
xor edi, ecx
xor edx, edi
movzx ecx, word [ebp - 8]
mov edi, edx
ror edi, 0xd
sub edi, dword [ebp - 0x5c]
imul edi, ecx
xor eax, edi
mov ecx, eax
sub ecx, dword [ebp - 0xc]
ror ecx, 9
imul ebx, ecx
mov ecx, dword [ebp - 0xc]
mov edi, eax
ror edi, 0xd
sub ebx, edi
xor edx, ebx
movzx edi, word [ebp - 8]
mov ebx, edx
sub ecx, edx
rol ecx, 6
imul ecx, edi
rol ebx, 4
movzx edi, word [ebp - 0xc]
xor ebx, ecx
xor eax, ebx
mov ecx, eax
xor ecx, edi
rol ecx, 3
mov ebx, dword [ebp - 0x18]
imul ebx, ecx
mov ecx, dword [ebp - 8]
mov edi, eax
ror edi, 8
xor edi, ebx
xor edx, edi
movzx edi, word [ebp - 0xc]
xor ecx, edx
mov ebx, edx
rol ecx, 7
imul ecx, edi
shr ebx, 7
sub ecx, ebx
xor eax, ecx
mov ebx, eax
xor ebx, edi
mov ecx, eax
movzx edi, word [ebp - 8]
imul ebx, dword [ebp - 0x28]
ror ecx, 0xe
sub ebx, ecx
xor edx, ebx
mov ecx, edx
mov ebx, edx
sub ecx, dword [ebp - 0xc]
ror ecx, 0xb
imul ecx, edi
ror ebx, 4
xor ebx, ecx
mov ecx, dword [ebp - 8]
xor eax, ebx
mov edi, eax
mov ebx, dword [ebp - 0x18]
xor ecx, eax
rol ecx, 0xa
imul ebx, ecx
movzx ecx, word [ebp - 0xc]
rol edi, 0xa
sub ebx, edi
xor edx, ebx
mov edi, edx
mov ebx, dword [ebp - 0x18]
xor ebx, edx
imul ebx, ecx
xor edx, dword [ebp - 0x14]
ror edi, 3
add edi, ebx
xor edi, dword [ebp - 0x2c]
xor eax, edi
mov dword [ebp - 0x5c], ecx
mov cl, byte [ebp - 0xd]
mov edi, dword [ebp - 0x34]
xor cl, al
xor cl, dl
mov byte [edi + 3], al
mov byte [edi + 7], dl
ror eax, 8
xor cl, al
mov byte [edi + 2], al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
mov byte [edi + 1], al
xor cl, al
ror edx, 8
mov byte [edi + 5], dl
xor cl, dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0xd], cl
mov ecx, dword [ebp - 0x30]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x2c], ecx
add edi, 8
mov ecx, dword [ebp - 0x60]
dec dword [ebp - 0x1c]
ror eax, 8
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x34], edi
ror edx, 8
jne 0x1001d23
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 8]
xor al, byte [ebp - 0xd]
je 0x1001f63
call fcn.010bfbea
mov edi, eax
mov edx, 0xfffff000
mov eax, dword [ebp - 0x70]
lea ecx, [eax + 0xc]
and ecx, 0xfffffffc
lea esi, [ecx + 0xfff]
and edi, edx
mov dword [eax + 8], 0x12e07d9
and esi, edx
mov edx, 0xffff
xor eax, eax
mov ebx, dword [0x138b4cc]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x138b4cc], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x1001f05
mov ebx, 0xffff
div ebx
mov dword [ebp - 0x98], edi
mov eax, ecx
inc edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x60], 0
cmp ecx, esi
jae 0x1001f59
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
add eax, 4
cmp eax, esi
jb 0x1001f4d
mov eax, 0x12e07d9
jmp 0x1002034
mov edx, dword [0x102c94c]
mov ecx, 0x1000000
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x68]
sub ecx, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x40], ecx
jne 0x1001f86
test eax, eax
je 0x1002027
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [0x1069ab8]
mov esi, dword [ebp - 0x68]
sub esi, dword [ebp - 0x3c]
add eax, ebx
mov dword [ebp - 0x60], eax
xor edi, edi
dec ecx
js 0x1001fc9
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1069abc]
and edx, 0xfffffff
cmp ebx, edx
jae 0x1001fc0
lea ecx, [eax - 1]
jmp 0x1001fc5
jbe 0x1001fcd
lea edi, [eax + 1]
cmp ecx, edi
jge 0x1001fa2
mov ebx, edi
jmp 0x100201f
mov ebx, eax
jmp 0x100201f
mov eax, dword [ebx*4 + 0x1069abc]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x60]
jae 0x1002027
lea edi, [ecx + esi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1002012
dec ecx
je 0x100200d
dec ecx
jne 0x1002018
mov edx, dword [ebp - 0x40]
jmp 0x1002018
mov edx, dword [ebp - 0x1c]
jmp 0x1002018
mov edx, dword [ebp - 0x40]
sub edx, dword [ebp - 0x1c]
dec eax
dec eax
jne 0x100201e
add dword [edi], edx
inc ebx
cmp ebx, dword [0x1069ab8]
jb 0x1001fd1
mov eax, dword [0x10fb370]
mov eax, 0x1ad93530
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x70]
mov dword [ecx + 8], eax
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x98]
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x8c]
mov esp, ebp
pop ebp
popfd
ret