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

Disassembly:
push edi
pushfd
push ebp
mov ebp, esp
sub esp, 0x8c
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x78], ecx
lea eax, [ebp + 4]
mov dword [ebp - 0x80], edx
sub eax, 4
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x8c], edi
mov edi, 0xfffffff
mov ecx, dword [0x109dc84]
mov dword [ebp - 0x6c], eax
add eax, 0xc
mov dword [ebp - 0x48], eax
mov eax, dword [eax]
mov ebx, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 4]
and eax, edi
mov dword [ebp - 0x1c], ecx
xor edx, edx
lea ecx, [ecx + eax - 1]
mov eax, ecx
div dword [ebp - 0x1c]
mov esi, 0x1000000
and ebx, edi
mov eax, dword [0x109dc84]
add ebx, esi
mov dword [ebp - 0x64], ebx
sub ecx, edx
mov dword [ebp - 0x18], ecx
mov eax, dword [0x129bea8]
mov dword [ebp - 0x34], eax
mov eax, dword [0x109dc84]
mov eax, dword [0x129bea8]
test eax, eax
je 0x13cac5f
and dword [ebp - 0x30], 0
mov eax, dword [0x129bea8]
dec eax
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x4c], ecx
test ecx, ecx
je 0x13cac08
mov edx, dword [0x1427a7c]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1427a7c], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x4c], 0x10
jne 0x13cabe2
xor edx, edx
div ecx
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x40], edx
jbe 0x13cac51
inc dword [ebp - 0x30]
lea edx, [edx*4 + 0x1427d38]
mov ecx, 0xffffc428
mov eax, 0x3bd7
lock cmpxchg dword [edx], ecx
cmp eax, 0x3bd7
je 0x13cae02
mov ecx, dword [0x129bea8]
mov eax, dword [ebp - 0x40]
inc eax
xor edx, edx
div ecx
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x34]
mov dword [ebp - 0x40], edx
jb 0x13cac15
and dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0
jne 0x13cace5
call dword [sym.imp.KERNEL32.dll_GetLastError]
and dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x30]
push 0x40
push 0x1000
push dword [ebp - 0x18]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x13cae19
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x30], 0x11
jb 0x13cac6c
and dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp dword [0x144656c], eax
ja 0x13caca9
test al, 3
je 0x13cacc1
test eax, eax
je 0x13cacbd
push 0x8000
push 0
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
and dword [ebp - 0x14], 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x14], 0
je 0x13cabb2
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x13cace5
mov byte [eax], 0
inc eax
dec ecx
jne 0x13cacde
mov eax, 0x8169cb11
mov eax, dword [ebp - 0x48]
add dword [eax], 8
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
and eax, edi
lea ecx, [ebx + eax]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [0x109dc84]
mov dword [ebp - 0x44], ebx
sub ecx, eax
sub dword [ebp - 0x44], esi
mov dword [ebp - 0x40], eax
inc ecx
xor eax, eax
test ecx, ecx
mov edx, ecx
je 0x13cad3d
mov ebx, dword [0x1427a7c]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x1427a7c], ebx
shr ebx, 0x10
shl eax, 0x10
or eax, ebx
shr edx, 0x10
jne 0x13cad18
xor edx, edx
div ecx
mov eax, dword [ebp - 0x14]
add eax, edx
push eax
push dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
push dword [ebp - 0x44]
mov eax, 0xbfd4ff98
mov eax, dword [ebp - 0x4c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x74]
push eax
mov dword [ebp - 0x74], ebx
mov byte [ebp - 0xd], 0
mov eax, 0x151f70f7
mov ecx, dword [0x13ca1e8]
mov eax, dword [ebp - 0x70]
and dword [ebp - 0x2c], 0
and dword [ebp - 0x28], 0
and eax, edi
mov dword [ebp - 0x20], eax
mov eax, esi
and ebx, edi
add esp, 0x10
mov edi, 0xfffff000
add ebx, esi
sub eax, ecx
mov dword [ebp - 0x24], eax
jne 0x13cae21
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x20], 0
jbe 0x13cb035
mov ecx, 0x7fffffff
mov esi, 0xd4afbe6b
mov edi, 0x2b504195
mov edx, esi
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jb 0x13cadbc
jmp 0x13cb035
mov eax, dword [0x109dc84]
imul eax, dword [ebp - 0x40]
lea eax, [eax + section..data]
mov dword [ebp - 0x14], eax
jmp 0x13cac55
mov dword [ebp - 0x14], eax
jmp 0x13cac9a
mov eax, dword [ebp - 0x20]
mov ecx, ebx
add eax, ebx
mov edx, dword [0x100003c]
lea edx, [edx + 0x10000a0]
mov dword [ebp - 0x38], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
add eax, esi
sub ecx, esi
mov dword [ebp - 0x1c], edx
mov esi, ecx
mov edx, ecx
and esi, edi
sub edx, esi
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x20]
add ecx, edx
mov edx, ecx
and edx, edi
sub ecx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x60], edx
mov edx, eax
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x58], ecx
jmp 0x13cae76
cmp dword [edx], esi
jae 0x13cae7b
add edx, dword [edx + 4]
cmp edx, ecx
mov dword [ebp - 0x54], edx
jne 0x13cae6d
and dword [ebp - 0x50], 0
cmp edx, ecx
je 0x13caeac
cmp dword [edx], esi
jne 0x13caeac
mov eax, dword [edx + 4]
sub eax, 8
shr eax, 1
je 0x13caeac
mov ecx, dword [ebp - 0x50]
movzx ecx, word [edx + ecx*2 + 8]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x3c]
jae 0x13caeac
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], eax
jne 0x13cae91
mov ecx, 0x7fffffff
mov esi, 0xd4afbe6b
mov edi, 0x2b504195
cmp edx, dword [ebp - 0x58]
je 0x13cafe6
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
ja 0x13cafe6
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x54]
jne 0x13caeff
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x58]
mov dword [ebp - 0x54], edx
je 0x13cafe6
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
ja 0x13cafe6
and dword [ebp - 0x50], 0
jmp 0x13caecf
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
jne 0x13caf1f
mov eax, dword [ebp - 0x50]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x5c]
jae 0x13cafe6
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x50]
test word [edx + eax*2 + 8], 0xf000
je 0x13caebb
movzx eax, word [edx + eax*2 + 8]
mov edx, dword [edx]
and dword [ebp - 0x18], 0
and eax, 0xfff
lea eax, [eax + edx + 0x1000000]
mov dword [ebp - 0x20], eax
sub dword [ebp - 0x20], ebx
mov dword [ebp - 0x34], eax
je 0x13caf91
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + ebx]
sub eax, edi
mov edx, esi
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jb 0x13caf50
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x68], eax
xor ebx, ebx
mov edx, esi
movzx eax, byte [ebp + ebx - 0x68]
sub eax, edi
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
inc ebx
cmp ebx, 4
jb 0x13caf9e
mov edx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x34]
add ebx, 4
jmp 0x13caebb
mov eax, dword [ebp - 0x38]
and dword [ebp - 0x18], 0
sub eax, ebx
mov dword [ebp - 0x1c], eax
je 0x13cb035
mov eax, dword [ebp - 0x18]
mov edx, esi
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jb 0x13caff4
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x2c]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x13cb039
mov eax, 0x1304ca5c
mov edi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x40]
and eax, 7
mov dword [ebp - 0x3c], eax
je 0x13cb216
cmp eax, ebx
mov esi, dword [ebp - 0x44]
not esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ebx
jle 0x13cb0a4
push 0x38
pop edx
cmp dword [ebp - 0x14], 4
movzx ebx, byte [edi]
jge 0x13cb091
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x20], ebx
jmp 0x13cb098
mov ecx, edx
shl ebx, cl
or dword [ebp - 0x18], ebx
inc edi
inc dword [ebp - 0x14]
sub edx, 8
cmp dword [ebp - 0x14], eax
jl 0x13cb07e
mov eax, dword [ebp - 0x44]
movzx edx, word [ebp - 6]
sub eax, edx
sub eax, dword [ebp - 0xc]
movzx ecx, word [ebp - 0xc]
xor esi, eax
mov eax, esi
movzx ebx, word [ebp - 8]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], ebx
xor ecx, esi
mov dword [ebp - 0x14], edx
rol ecx, 3
imul ebx, ecx
mov ecx, edx
ror eax, 9
add eax, ebx
movzx edx, word [ebp - 0xa]
mov ebx, dword [ebp - 0x34]
xor eax, dword [ebp - 0x44]
xor ecx, eax
rol ecx, 6
imul edx, ecx
mov ecx, eax
shr ecx, 3
add edx, ecx
mov ecx, dword [ebp - 8]
xor esi, edx
mov edx, esi
xor ecx, esi
ror ecx, 0xc
imul ebx, ecx
rol edx, 0xa
xor edx, ebx
xor eax, edx
mov ecx, dword [ebp - 0xc]
mov edx, eax
xor ecx, eax
mov ebx, dword [ebp - 0x14]
rol ecx, 1
imul ebx, ecx
mov ecx, dword [ebp - 0x34]
rol edx, 0xf
add edx, ebx
xor esi, edx
mov edx, esi
not edx
ror edx, 0xb
add edx, dword [ebp - 0x24]
imul edx, ecx
xor eax, edx
mov ebx, eax
movzx edx, word [ebp - 0xa]
sub ebx, dword [ebp - 0x24]
imul ebx, edx
mov edx, eax
shr edx, 0xc
sub ebx, edx
xor esi, ebx
mov ebx, esi
mov edx, esi
sub edx, dword [ebp - 8]
ror edx, 0xa
imul ecx, edx
ror ebx, 7
mov edx, dword [ebp - 0x14]
add ebx, ecx
xor eax, ebx
mov ecx, eax
sub ecx, dword [ebp - 0xc]
mov ebx, eax
ror ecx, 0xf
imul edx, ecx
rol ebx, 3
xor ebx, edx
mov ecx, dword [ebp - 0xc]
xor esi, ebx
add ecx, esi
mov ebx, dword [ebp - 0x24]
ror ecx, 0xd
mov edx, esi
ror edx, 0xb
imul ebx, ecx
add edx, ebx
mov ecx, dword [ebp - 0x24]
xor eax, edx
movzx edx, word [ebp - 0xa]
mov ebx, eax
and dword [ebp - 0x14], 0
xor ecx, eax
imul ecx, edx
mov edx, dword [ebp - 8]
ror ebx, 0xd
add ebx, ecx
mov ecx, dword [ebp - 0xc]
xor esi, ebx
xor ecx, esi
xor esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x3c]
sub edx, ecx
xor edx, dword [ebp - 0x20]
xor eax, edx
test ebx, ebx
mov ecx, esi
mov dword [ebp - 0x24], eax
jle 0x13cb1ec
cmp dword [ebp - 0x14], 4
jge 0x13cb1d3
rol dword [ebp - 0x24], 8
mov dl, byte [ebp - 0x24]
mov ebx, dword [ebp - 0x38]
inc dword [ebp - 0x38]
xor byte [ebp - 0xd], dl
mov byte [ebx], dl
jmp 0x13cb1e1
mov edx, dword [ebp - 0x38]
inc dword [ebp - 0x38]
rol ecx, 8
xor byte [ebp - 0xd], cl
mov byte [edx], cl
inc dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0x14], ebx
jl 0x13cb1b9
add ebx, 0xfffffffc
test ebx, ebx
jle 0x13cb203
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr esi, cl
shl esi, cl
mov edx, esi
jmp 0x13cb225
xor edx, edx
test ebx, ebx
jge 0x13cb225
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x13cb225
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
not eax
xor edx, edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x40]
shr ecx, 3
je 0x13cb3e1
movzx esi, word [ebp - 6]
mov dword [ebp - 0x14], esi
movzx esi, word [ebp - 0xa]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [edi + 1]
movzx esi, byte [edi + 2]
mov ch, byte [edi]
add edi, 8
shl ecx, 8
or ecx, esi
shl ecx, 8
movzx esi, byte [edi - 5]
or ecx, esi
mov dword [ebp - 0x24], ecx
movzx esi, byte [edi - 2]
xor ecx, ecx
xor eax, dword [ebp - 0x24]
mov ch, byte [edi - 4]
mov cl, byte [edi - 3]
shl ecx, 8
or ecx, esi
movzx esi, byte [edi - 1]
shl ecx, 8
or ecx, esi
mov dword [ebp - 0x3c], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0xc]
xor ecx, dword [ebp - 0x3c]
xor edx, ecx
movzx ecx, word [ebp - 0xc]
xor ecx, edx
movzx esi, word [ebp - 8]
mov ebx, edx
rol ecx, 3
imul esi, ecx
mov ecx, dword [ebp - 0x14]
ror ebx, 9
add ebx, esi
mov esi, dword [ebp - 0x34]
xor eax, ebx
xor ecx, eax
rol ecx, 6
imul esi, ecx
mov ecx, eax
shr ecx, 3
add esi, ecx
xor edx, esi
mov ecx, dword [ebp - 8]
movzx esi, word [ebp - 0xc]
mov ebx, edx
xor ecx, edx
ror ecx, 0xc
imul esi, ecx
mov ecx, dword [ebp - 0xc]
rol ebx, 0xa
xor ebx, esi
xor eax, ebx
mov ebx, dword [ebp - 0x14]
xor ecx, eax
rol ecx, 1
mov esi, eax
imul ebx, ecx
movzx ecx, word [ebp - 8]
rol esi, 0xf
add esi, ebx
xor edx, esi
mov ebx, edx
movzx esi, word [ebp - 0xc]
not ebx
ror ebx, 0xb
add ebx, ecx
imul ebx, esi
xor eax, ebx
mov ebx, eax
sub ebx, ecx
mov ecx, eax
imul ebx, dword [ebp - 0x34]
shr ecx, 0xc
sub ebx, ecx
xor edx, ebx
mov ecx, edx
sub ecx, dword [ebp - 8]
mov ebx, edx
ror ecx, 0xa
imul esi, ecx
ror ebx, 7
add ebx, esi
xor eax, ebx
mov esi, eax
mov ebx, dword [ebp - 0x14]
mov ecx, eax
sub ecx, dword [ebp - 0xc]
ror ecx, 0xf
imul ebx, ecx
mov ecx, dword [ebp - 0xc]
rol esi, 3
xor esi, ebx
xor edx, esi
add ecx, edx
movzx esi, word [ebp - 8]
ror ecx, 0xd
imul esi, ecx
mov ebx, edx
movzx ecx, word [ebp - 8]
ror ebx, 0xb
add ebx, esi
xor eax, ebx
xor ecx, eax
mov esi, eax
imul ecx, dword [ebp - 0x34]
ror esi, 0xd
add esi, ecx
mov ecx, dword [ebp - 0xc]
xor edx, esi
xor ecx, edx
mov esi, dword [ebp - 8]
xor edx, dword [ebp - 0x18]
sub esi, ecx
mov cl, byte [ebp - 0xd]
xor esi, dword [ebp - 0x20]
xor eax, esi
xor cl, al
mov esi, dword [ebp - 0x38]
xor cl, dl
mov byte [esi + 3], al
mov byte [esi + 7], dl
ror eax, 8
xor cl, al
ror edx, 8
mov byte [esi + 2], al
xor cl, dl
ror eax, 8
xor cl, al
mov byte [esi + 6], dl
ror edx, 8
mov byte [esi + 1], al
xor cl, dl
mov byte [esi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov ebx, dword [ebp - 0x24]
mov byte [esi], al
mov byte [esi + 4], dl
mov dword [ebp - 0x20], ebx
add esi, 8
mov ebx, dword [ebp - 0x3c]
dec dword [ebp - 0x1c]
ror eax, 8
ror edx, 8
mov byte [ebp - 0xd], cl
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], esi
jne 0x13cb242
jmp 0x13cb3e4
mov cl, byte [ebp - 0xd]
mov eax, dword [ebp - 0x4c]
cmp cl, byte [eax + 8]
je 0x13cb477
call fcn.012a18fc
mov edx, 0xffff
mov esi, eax
mov ecx, dword [ebp - 0x48]
and ecx, 0xfffffffc
mov edi, ecx
mov eax, 0xfffff000
lea ecx, [edi + 0xfff]
and esi, eax
and ecx, eax
mov eax, dword [ebp - 0x6c]
mov dword [eax + 8], 0x103a6aa
xor eax, eax
mov ebx, dword [0x1427a7c]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x1427a7c], ebx
shr ebx, 0x10
shl eax, 0x10
or eax, ebx
shr edx, 0x10
jne 0x13cb41f
mov ebx, 0xffff
xor edx, edx
div ebx
inc edx
mov eax, edi
cmp edi, ecx
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x48], 0
jae 0x13cb46d
mov edx, dword [ebp - 0x48]
mov dword [eax], edx
add eax, 4
cmp eax, ecx
jb 0x13cb461
mov eax, 0x103a6aa
jmp 0x13cb548
mov eax, dword [ebp - 0x64]
mov ecx, 0x1000000
sub eax, dword [ebp - 0x30]
mov edx, dword [0x13ca1e8]
sub ecx, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x48], ecx
jne 0x13cb49a
test eax, eax
je 0x13cb53b
mov ecx, dword [0x1236cc0]
mov ebx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x40]
sub esi, dword [ebp - 0x64]
add eax, ebx
xor edi, edi
dec ecx
mov dword [ebp - 0x68], eax
js 0x13cb4dd
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1236cc4]
and edx, 0xfffffff
cmp ebx, edx
jae 0x13cb4d4
lea ecx, [eax - 1]
jmp 0x13cb4d9
jbe 0x13cb4e1
lea edi, [eax + 1]
cmp ecx, edi
jge 0x13cb4b6
mov ebx, edi
jmp 0x13cb533
mov ebx, eax
jmp 0x13cb533
mov eax, dword [ebx*4 + 0x1236cc4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x68]
jae 0x13cb53b
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 0x13cb526
dec ecx
je 0x13cb521
dec ecx
jne 0x13cb52c
mov edx, dword [ebp - 0x48]
jmp 0x13cb52c
mov edx, dword [ebp - 0x1c]
jmp 0x13cb52c
mov edx, dword [ebp - 0x48]
sub edx, dword [ebp - 0x1c]
dec eax
dec eax
jne 0x13cb532
add dword [edi], edx
inc ebx
cmp ebx, dword [0x1236cc0]
jb 0x13cb4e5
mov eax, dword [0x109dc84]
mov eax, 0x80c00584
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x88]
mov esp, ebp
pop ebp
popfd
ret