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

Disassembly:
push edi
pushfd
push ebp
mov ebp, esp
sub esp, 0x9c
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
lea eax, [ebp + 4]
mov dword [ebp - 0x9c], edx
sub eax, 4
mov dword [ebp - 0x88], ebx
mov ebx, 0xfffffff
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], edi
mov ecx, dword [0x10fb370]
mov dword [ebp - 0x74], eax
add eax, 0xc
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
mov esi, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], ecx
and eax, ebx
xor edx, edx
lea ecx, [ecx + eax - 1]
mov eax, ecx
div dword [ebp - 0x1c]
shr esi, 1
mov eax, dword [0x10fb370]
mov edi, 0x1000000
and esi, ebx
add esi, edi
mov dword [ebp - 0x6c], esi
sub ecx, edx
mov dword [ebp - 0x48], ecx
mov eax, dword [0x1007420]
mov dword [ebp - 0x44], eax
mov eax, dword [0x10fb370]
mov eax, dword [0x1007420]
test eax, eax
je 0x12decf2
and dword [ebp - 0x14], 0
mov eax, dword [0x1007420]
dec eax
lea ecx, [eax + 1]
mov dword [ebp - 0x20], ecx
xor eax, eax
test ecx, ecx
je 0x12dec9b
mov edx, dword [0x138b4cc]
shr dword [ebp - 0x20], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x138b4cc], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x20], 0
jne 0x12dec71
xor edx, edx
div ecx
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x20], edx
jbe 0x12dece4
inc dword [ebp - 0x14]
mov eax, 0xef0b
lea edx, [edx*4 + 0x1388f9c]
mov ecx, 0xffff10f4
lock cmpxchg dword [edx], ecx
cmp eax, 0xef0b
je 0x12dedab
mov ecx, dword [0x1007420]
mov eax, dword [ebp - 0x20]
inc eax
xor edx, edx
div ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], edx
cmp eax, dword [ebp - 0x44]
jb 0x12deca8
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 0
jne 0x12ded78
call dword [sym.imp.KERNEL32.dll_GetLastError]
and dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0x20]
push 0x40
push 0x1000
push dword [ebp - 0x48]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x12dedc2
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x20], 0x11
jb 0x12decff
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x18]
cmp dword [0x138b2f8], eax
ja 0x12ded3c
test al, 3
je 0x12ded54
test eax, eax
je 0x12ded50
push 0x8000
push 0
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
and dword [ebp - 0x18], 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x18], 0
je 0x12dec41
mov ecx, dword [ebp - 0x48]
test ecx, ecx
mov eax, dword [ebp - 0x18]
je 0x12ded78
mov byte [eax], 0
inc eax
dec ecx
jne 0x12ded71
mov eax, 0xa5d39fcf
mov eax, dword [ebp - 0x70]
add dword [eax], 8
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 4]
and ecx, ebx
lea eax, [esi + ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [0x10fb370]
mov dword [ebp - 0x40], esi
sub eax, ecx
sub dword [ebp - 0x40], edi
lea edx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x1c], edx
jmp 0x12deded
mov eax, dword [0x10fb370]
imul eax, dword [ebp - 0x20]
lea eax, [eax + section..data]
mov dword [ebp - 0x18], eax
jmp 0x12dece8
mov dword [ebp - 0x18], eax
jmp 0x12ded2d
mov esi, dword [0x138b4cc]
imul esi, esi, 0x343fd
add esi, 0x269ec3
mov dword [0x138b4cc], esi
shr esi, 0x10
shl eax, 0x10
or eax, esi
shr edx, 0x10
test edx, edx
jne 0x12dedca
div dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add eax, edx
push eax
push ecx
push dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
mov eax, 0x6c497006
mov eax, dword [ebp - 0x48]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x84], esi
mov byte [ebp - 0xd], 0
mov eax, 0x998add43
mov ecx, dword [0x102c94c]
mov edx, 0xfffff000
mov eax, dword [ebp - 0x80]
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
and eax, ebx
mov dword [ebp - 0x2c], eax
mov eax, edi
and esi, ebx
add esi, edi
mov ebx, esi
add esp, 0x10
sub eax, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x4c], eax
jne 0x12deecc
and dword [ebp - 0x14], 0
cmp dword [ebp - 0x2c], 0
jbe 0x12df127
mov edi, 0x7acd5b43
mov ecx, 0x7fffffff
mov esi, 0x8532a4bd
mov eax, dword [ebp - 0x14]
mov edx, esi
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x28], eax
add eax, dword [ebp - 0x24]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov dword [ebp - 0x64], edx
sar edx, 0x1f
and edx, ecx
add edx, dword [ebp - 0x64]
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 - 0x28], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x2c]
jb 0x12dee74
jmp 0x12df127
mov esi, dword [0x100003c]
mov ecx, ebx
mov eax, dword [ebp - 0x2c]
lea esi, [esi + 0x10000a0]
add eax, ebx
mov dword [ebp - 0x34], eax
mov eax, dword [esi]
add eax, edi
sub ecx, edi
mov edi, ecx
and edi, edx
mov esi, dword [esi + 4]
mov dword [ebp - 0x1c], esi
mov esi, ecx
sub esi, edi
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x2c]
add ecx, esi
mov esi, ecx
and esi, edx
sub ecx, esi
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], esi
mov ecx, eax
add edx, eax
cmp eax, edx
mov dword [ebp - 0x58], edx
jmp 0x12def21
cmp dword [ecx], edi
jae 0x12def26
add ecx, dword [ecx + 4]
cmp ecx, edx
mov dword [ebp - 0x54], ecx
jne 0x12def18
and dword [ebp - 0x50], 0
cmp ecx, edx
je 0x12def57
cmp dword [ecx], edi
jne 0x12def57
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x12def57
add ecx, 8
movzx edx, word [ecx]
and edx, 0xfff
cmp edx, dword [ebp - 0x3c]
jae 0x12def57
inc dword [ebp - 0x50]
inc ecx
inc ecx
cmp dword [ebp - 0x50], eax
jne 0x12def3f
mov ecx, 0x7fffffff
mov esi, 0x8532a4bd
mov edi, 0x7acd5b43
mov edx, dword [ebp - 0x54]
jmp 0x12def6e
mov ebx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x58]
je 0x12df0c6
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
ja 0x12df0c6
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x54]
jne 0x12defb2
add edx, dword [edx + 4]
mov dword [ebp - 0x54], edx
cmp edx, dword [ebp - 0x58]
je 0x12df0c6
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
ja 0x12df0c6
and dword [ebp - 0x50], 0
jmp 0x12def82
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
jne 0x12defcf
mov eax, dword [ebp - 0x50]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x5c]
jae 0x12df0c6
mov ebx, 0xf000
mov eax, dword [ebp - 0x50]
inc dword [ebp - 0x50]
test word [edx + eax*2 + 8], bx
je 0x12def6b
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 - 0x38], eax
mov dword [ebp - 0x1c], edx
je 0x12df05c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + edx]
sub eax, edi
mov edx, esi
add dword [ebp - 0x28], eax
add eax, dword [ebp - 0x24]
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 - 0x28], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jb 0x12df005
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
sub eax, dword [ebp - 0x4c]
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 - 0x28], eax
add eax, dword [ebp - 0x24]
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 - 0x28], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
mov dword [ebp - 0x24], eax
jb 0x12df068
mov ebx, dword [ebp - 0x38]
add ebx, 4
mov dword [ebp - 0x30], ebx
jmp 0x12def66
mov eax, dword [ebp - 0x34]
and dword [ebp - 0x14], 0
sub eax, ebx
mov dword [ebp - 0x1c], eax
je 0x12df127
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + ebx]
sub eax, edi
mov edx, esi
add dword [ebp - 0x28], eax
add eax, dword [ebp - 0x24]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov dword [ebp - 0x64], edx
sar edx, 0x1f
and edx, ecx
add edx, dword [ebp - 0x64]
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 - 0x28], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jb 0x12df0d4
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x28]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x12df12b
mov eax, 0x5a158489
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x44]
and eax, 7
mov dword [ebp - 0x38], eax
je 0x12df30b
cmp eax, ebx
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x2c], ebx
not edi
mov dword [ebp - 0x18], ebx
jle 0x12df196
push 0x38
pop edx
cmp dword [ebp - 0x18], 4
movzx ebx, byte [esi]
jge 0x12df183
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x2c], ebx
jmp 0x12df18a
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 0x12df170
movzx ebx, word [ebp - 0xa]
mov eax, dword [ebp - 0x40]
movzx edx, word [ebp - 6]
sub eax, edx
xor eax, dword [ebp - 0xc]
xor edi, eax
mov eax, dword [ebp - 8]
xor eax, dword [ebp - 0xc]
xor eax, edi
xor eax, dword [ebp - 0x40]
mov ecx, eax
sub ecx, edx
rol ecx, 1
imul ecx, ebx
mov ebx, eax
shr ebx, 0xb
xor ecx, ebx
movzx ebx, word [ebp - 8]
xor edi, ecx
movzx ecx, word [ebp - 0xc]
mov dword [ebp - 0x1c], ebx
mov ebx, edi
ror ebx, 0xd
sub ebx, ecx
imul ebx, dword [ebp - 0x1c]
xor eax, ebx
mov ecx, eax
mov ebx, eax
sub ecx, dword [ebp - 0xc]
ror ecx, 9
imul edx, ecx
mov ecx, dword [ebp - 0xc]
ror ebx, 0xd
sub edx, ebx
xor edi, edx
mov ebx, edi
movzx edx, word [ebp - 8]
sub ecx, edi
rol ecx, 6
imul ecx, edx
movzx edx, word [ebp - 0xc]
rol ebx, 4
xor ebx, ecx
xor eax, ebx
mov ecx, eax
xor ecx, edx
rol ecx, 3
mov ebx, eax
movzx edx, word [ebp - 0xa]
imul ecx, edx
ror ebx, 8
xor ebx, ecx
movzx edx, word [ebp - 0xc]
xor edi, ebx
mov ecx, dword [ebp - 8]
mov ebx, edi
xor ecx, edi
rol ecx, 7
imul ecx, edx
shr ebx, 7
sub ecx, ebx
xor eax, ecx
mov ebx, eax
mov ecx, 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 ecx, edi
mov ebx, edi
sub ecx, dword [ebp - 0xc]
ror ecx, 0xb
imul ecx, edx
ror ebx, 4
xor ebx, ecx
movzx edx, word [ebp - 0xa]
mov ecx, dword [ebp - 8]
xor eax, ebx
mov ebx, eax
xor ecx, eax
rol ecx, 0xa
imul ecx, edx
rol ebx, 0xa
sub ecx, ebx
xor edi, ecx
mov ebx, edi
and dword [ebp - 0x18], 0
mov ecx, edi
xor ecx, edx
mov edx, ecx
movzx ecx, word [ebp - 0xc]
imul edx, ecx
xor edi, dword [ebp - 0x14]
mov ecx, edi
ror ebx, 3
add ebx, edx
xor ebx, dword [ebp - 0x2c]
xor eax, ebx
mov ebx, dword [ebp - 0x38]
test ebx, ebx
mov dword [ebp - 0x30], eax
jle 0x12df2e1
cmp dword [ebp - 0x18], 4
jge 0x12df2c8
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 0x12df2d6
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 - 0x38]
cmp dword [ebp - 0x18], ebx
jl 0x12df2ae
add ebx, 0xfffffffc
test ebx, ebx
jle 0x12df2f8
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edi, cl
shl edi, cl
mov edx, edi
jmp 0x12df31a
xor edx, edx
test ebx, ebx
jge 0x12df31a
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x12df31a
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c], eax
not eax
mov dword [ebp - 0x14], eax
xor edx, edx
xor eax, eax
mov ecx, dword [ebp - 0x44]
shr ecx, 3
test ecx, ecx
jbe 0x12df4ef
mov edi, dword [ebp - 8]
xor edi, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x7c], edi
movzx edi, word [ebp - 6]
mov dword [ebp - 0x4c], edi
neg dword [ebp - 0x4c]
mov dword [ebp - 0x38], edi
movzx edi, word [ebp - 0xa]
mov dword [ebp - 0x18], edi
movzx edi, word [ebp - 0xc]
mov dword [ebp - 0x3c], edi
movzx ecx, byte [esi]
shl ecx, 8
movzx edi, byte [esi + 1]
or edi, ecx
movzx ecx, byte [esi + 2]
movzx ebx, byte [esi + 5]
shl edi, 8
or edi, ecx
movzx ecx, byte [esi + 3]
shl edi, 8
or edi, ecx
movzx ecx, byte [esi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi + 6]
shl ecx, 8
or ecx, ebx
xor eax, edi
movzx ebx, byte [esi + 7]
mov dword [ebp - 0x30], edi
shl ecx, 8
mov edi, eax
or ecx, ebx
mov dword [ebp - 0x64], ecx
sub edi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x38]
add esi, 8
xor edi, dword [ebp - 0xc]
xor edi, ecx
xor edx, edi
mov ecx, dword [ebp - 0x7c]
xor ecx, edx
xor eax, ecx
mov edi, eax
mov ecx, dword [ebp - 0x4c]
add ecx, eax
rol ecx, 1
imul ecx, dword [ebp - 0x18]
shr edi, 0xb
xor ecx, edi
xor edx, ecx
movzx ecx, word [ebp - 8]
mov edi, edx
ror edi, 0xd
sub edi, dword [ebp - 0x3c]
imul edi, ecx
xor eax, edi
mov ecx, eax
sub ecx, dword [ebp - 0xc]
mov edi, eax
ror ecx, 9
imul ebx, ecx
mov ecx, dword [ebp - 0xc]
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
mov edi, eax
rol ecx, 3
imul ecx, dword [ebp - 0x18]
ror edi, 8
xor edi, ecx
xor edx, edi
movzx edi, word [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov ebx, edx
xor ecx, edx
rol ecx, 7
imul ecx, edi
shr ebx, 7
sub ecx, ebx
xor eax, ecx
mov ecx, eax
mov ebx, eax
xor ebx, edi
movzx edi, word [ebp - 8]
imul ebx, dword [ebp - 0x38]
ror ecx, 0xe
sub ebx, ecx
xor edx, ebx
mov ecx, edx
sub ecx, dword [ebp - 0xc]
mov ebx, edx
ror ecx, 0xb
imul ecx, edi
ror ebx, 4
xor ebx, ecx
mov ecx, dword [ebp - 8]
xor eax, ebx
mov edi, eax
xor ecx, eax
rol ecx, 0xa
imul ecx, dword [ebp - 0x18]
rol edi, 0xa
sub ecx, edi
xor edx, ecx
mov edi, edx
movzx ecx, word [ebp - 0xc]
mov ebx, edx
xor ebx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x14]
imul ebx, ecx
ror edi, 3
add edi, ebx
xor edi, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], ecx
xor eax, edi
mov cl, byte [ebp - 0xd]
xor cl, al
xor cl, dl
mov edi, dword [ebp - 0x34]
mov byte [edi + 3], al
mov byte [edi + 7], dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 1], al
ror edx, 8
xor cl, dl
ror eax, 8
mov byte [edi + 5], dl
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
mov ecx, dword [ebp - 0x64]
add edi, 8
dec dword [ebp - 0x1c]
mov dword [ebp - 0x14], ecx
ror eax, 8
mov dword [ebp - 0x34], edi
ror edx, 8
jne 0x12df34f
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x48]
mov al, byte [eax + 8]
xor al, byte [ebp - 0xd]
je 0x12df58b
call fcn.010bfbea
and ecx, 0xfffffffc
mov edi, ecx
mov edx, 0xffff
mov esi, eax
mov eax, 0xfffff000
lea ecx, [edi + 0xfff]
and esi, eax
and ecx, eax
mov eax, dword [ebp - 0x74]
mov dword [eax + 8], 0x12e07d9
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 0x12df52d
mov ebx, 0xffff
div ebx
mov eax, edi
inc edx
mov dword [ebp - 0x9c], esi
cmp edi, ecx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x64], 0
jae 0x12df581
mov edx, dword [ebp - 0x64]
mov dword [eax], edx
add eax, 4
cmp eax, ecx
jb 0x12df575
mov eax, 0x12e07d9
jmp 0x12df65c
mov ecx, 0x1000000
mov edx, dword [0x102c94c]
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
sub ecx, edx
mov dword [ebp - 0x1c], ecx
jne 0x12df5ae
test eax, eax
je 0x12df64f
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x1069ab8]
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x20]
sub esi, dword [ebp - 0x6c]
add eax, ebx
mov dword [ebp - 0x64], eax
xor edi, edi
dec ecx
js 0x12df5f1
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1069abc]
and edx, 0xfffffff
cmp ebx, edx
jae 0x12df5e8
lea ecx, [eax - 1]
jmp 0x12df5ed
jbe 0x12df5f5
lea edi, [eax + 1]
cmp ecx, edi
jge 0x12df5ca
mov ebx, edi
jmp 0x12df647
mov ebx, eax
jmp 0x12df647
mov eax, dword [ebx*4 + 0x1069abc]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x64]
jae 0x12df64f
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 0x12df63a
dec ecx
je 0x12df635
dec ecx
jne 0x12df640
mov edx, dword [ebp - 0x1c]
jmp 0x12df640
mov edx, dword [ebp - 0x3c]
jmp 0x12df640
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x3c]
dec eax
dec eax
jne 0x12df646
add dword [edi], edx
inc ebx
cmp ebx, dword [0x1069ab8]
jb 0x12df5f9
mov eax, dword [0x10fb370]
mov eax, 0x3dd4b086
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x74]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x94]
mov esp, ebp
pop ebp
popfd
ret