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

Disassembly:
push edi
pushfd
push ebp
mov ebp, esp
sub esp, 0x94
mov dword [ebp - 0x90], eax
lea eax, [ebp + 4]
sub eax, 4
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x84], ebx
mov ebx, 0xfffffff
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x94], edi
mov ecx, dword [0x109dc84]
mov dword [ebp - 0x70], eax
add eax, 0xc
mov dword [ebp - 0x54], eax
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
mov dword [ebp - 0x1c], ecx
shr eax, 1
and eax, ebx
lea ecx, [ecx + eax - 1]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x1c]
mov esi, 0x1000000
and edi, ebx
mov eax, dword [0x109dc84]
add edi, esi
mov dword [ebp - 0x6c], edi
sub ecx, edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [0x129bea8]
mov dword [ebp - 0x48], eax
mov eax, dword [0x109dc84]
mov eax, dword [0x129bea8]
test eax, eax
je 0x10431dc
and dword [ebp - 0x30], 0
mov eax, dword [0x129bea8]
dec eax
lea ecx, [eax + 1]
mov dword [ebp - 0x4c], ecx
xor eax, eax
test ecx, ecx
je 0x1043185
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 0x104315f
xor edx, edx
div ecx
cmp dword [ebp - 0x48], 0
mov dword [ebp - 0x18], edx
jbe 0x10431ce
inc dword [ebp - 0x30]
mov ecx, 0xffffc428
lea edx, [edx*4 + 0x1427d38]
mov eax, 0x3bd7
lock cmpxchg dword [edx], ecx
cmp eax, 0x3bd7
je 0x10433a8
mov eax, dword [ebp - 0x18]
inc eax
xor edx, edx
mov ecx, dword [0x129bea8]
div ecx
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x48]
mov dword [ebp - 0x18], edx
jb 0x1043192
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jne 0x1043262
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 - 0x2c]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x10433bf
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x30], 0x11
jb 0x10431e9
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp dword [0x144656c], eax
ja 0x1043226
test al, 3
je 0x104323e
test eax, eax
je 0x104323a
push 0x8000
push 0
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
and dword [ebp - 0x10], 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x10], 0
je 0x104312f
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x1043262
mov byte [eax], 0
inc eax
dec ecx
jne 0x104325b
mov eax, 0xcf5c8033
mov eax, dword [ebp - 0x54]
add dword [eax], 8
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
shr ecx, 1
and ecx, ebx
lea eax, [edi + ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [0x109dc84]
sub eax, ecx
lea edx, [eax + 1]
mov dword [ebp - 0x38], edi
sub dword [ebp - 0x38], esi
mov dword [ebp - 0x4c], ecx
xor eax, eax
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x10432bd
mov edi, dword [0x1427a7c]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1427a7c], edi
shr edi, 0x10
shl eax, 0x10
or eax, edi
shr edx, 0x10
jne 0x1043298
xor edx, edx
div dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
add eax, edx
push eax
push ecx
push dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
mov eax, 0x9ead93fc
mov eax, dword [ebp - 0x48]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x78]
push eax
mov dword [ebp - 0x78], edi
mov byte [ebp - 0x11], 0
mov eax, 0x65593144
mov edx, 0xfffff000
mov ecx, dword [0x13ca1e8]
mov eax, dword [ebp - 0x74]
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
and eax, ebx
and edi, ebx
mov dword [ebp - 0x20], eax
mov eax, esi
add edi, esi
add esp, 0x10
sub eax, ecx
mov ebx, edi
mov dword [ebp - 0x3c], eax
jne 0x10433c7
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x20], 0
jbe 0x104364a
mov esi, 0xf7df258b
mov edi, 0x820da75
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + ebx]
sub edx, edi
add dword [ebp - 0x28], edx
add edx, dword [ebp - 0x24]
mov eax, edx
imul eax, eax, 0xa5eb
rol eax, 0xb
ror edx, 0xb
xor eax, edx
mov edx, esi
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
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
add dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jb 0x104333d
jmp 0x104364a
mov eax, dword [0x109dc84]
imul eax, dword [ebp - 0x18]
lea eax, [eax + section..data]
mov dword [ebp - 0x10], eax
jmp 0x10431d2
mov dword [ebp - 0x10], eax
jmp 0x1043217
mov ecx, ebx
mov edi, dword [0x100003c]
lea edi, [edi + 0x10000a0]
mov eax, dword [ebp - 0x20]
add eax, ebx
mov dword [ebp - 0x34], eax
mov eax, dword [edi]
add eax, esi
sub ecx, esi
mov esi, dword [edi + 4]
mov edi, ecx
mov dword [ebp - 0x1c], esi
mov esi, ecx
and esi, edx
sub edi, esi
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x20]
add ecx, edi
mov edi, ecx
and edi, edx
sub ecx, edi
mov edx, dword [ebp - 0x1c]
add edx, eax
mov dword [ebp - 0x64], ecx
mov ecx, eax
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], edx
cmp eax, edx
jmp 0x104341c
cmp dword [ecx], esi
jae 0x1043421
add ecx, dword [ecx + 4]
cmp ecx, edx
mov dword [ebp - 0x5c], ecx
jne 0x1043413
and dword [ebp - 0x58], 0
cmp ecx, edx
je 0x1043452
cmp dword [ecx], esi
jne 0x1043452
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x1043452
mov edx, dword [ebp - 0x58]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x44]
jae 0x1043452
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], eax
jne 0x1043437
mov edi, 0x820da75
mov esi, 0xf7df258b
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0x60]
je 0x10435d6
mov eax, dword [ebp - 0x68]
cmp dword [edx], eax
ja 0x10435d6
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x5c]
jne 0x10434a8
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edx
je 0x10435d6
mov eax, dword [ebp - 0x68]
cmp dword [edx], eax
ja 0x10435d6
and dword [ebp - 0x58], 0
jmp 0x1043478
mov eax, dword [ebp - 0x68]
cmp dword [edx], eax
jne 0x10434c8
mov eax, dword [ebp - 0x58]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x64]
jae 0x10435d6
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
inc dword [ebp - 0x58]
test word [edx + eax*2 + 8], 0xf000
je 0x1043464
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 - 0x2c], eax
je 0x104355f
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + ebx]
sub edx, edi
add dword [ebp - 0x28], edx
add edx, dword [ebp - 0x24]
mov eax, edx
imul eax, eax, 0xa5eb
rol eax, 0xb
ror edx, 0xb
xor eax, edx
mov edx, esi
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
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
add dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jb 0x10434f9
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c], eax
xor ebx, ebx
movzx edx, byte [ebp + ebx - 0x7c]
sub edx, edi
add dword [ebp - 0x28], edx
add edx, dword [ebp - 0x24]
mov eax, edx
imul eax, eax, 0xa5eb
rol eax, 0xb
ror edx, 0xb
xor eax, edx
mov edx, esi
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
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
add dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
inc ebx
cmp ebx, 4
jb 0x104356c
mov ebx, dword [ebp - 0x2c]
add ebx, 4
jmp 0x1043461
mov eax, dword [ebp - 0x34]
and dword [ebp - 0x18], 0
sub eax, ebx
mov dword [ebp - 0x1c], eax
je 0x104364a
mov eax, dword [ebp - 0x18]
movzx edx, byte [eax + ebx]
sub edx, edi
add dword [ebp - 0x28], edx
add edx, dword [ebp - 0x24]
mov eax, edx
imul eax, eax, 0xa5eb
rol eax, 0xb
ror edx, 0xb
xor eax, edx
mov edx, esi
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
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
add dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jb 0x10435e4
xor edi, edi
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 0x104364e
mov eax, 0x604a0684
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
and edx, 7
mov dword [ebp - 0x2c], edx
je 0x104382b
not eax
mov dword [ebp - 0x18], edi
cmp edx, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x10], edi
jle 0x10436b9
push 0x38
pop edi
cmp dword [ebp - 0x10], 4
movzx ebx, byte [esi]
jge 0x10436a6
lea ecx, [edi - 0x20]
shl ebx, cl
or dword [ebp - 0x20], ebx
jmp 0x10436ad
mov ecx, edi
shl ebx, cl
or dword [ebp - 0x18], ebx
inc esi
inc dword [ebp - 0x10]
sub edi, 8
cmp dword [ebp - 0x10], edx
jl 0x1043693
movzx edx, word [ebp - 6]
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 8]
movzx ecx, di
ror ebx, 1
xor ebx, edx
mov edx, dword [ebp - 0xc]
imul ebx, ecx
xor eax, ebx
xor edx, eax
mov ebx, eax
mov dword [ebp - 0x10], eax
rol edx, 4
mov eax, ecx
rol ebx, 1
imul eax, edx
sub eax, ebx
xor eax, dword [ebp - 0x38]
lea edx, [edi + eax]
movzx edi, word [ebp - 0xa]
mov dword [ebp - 0x3c], edi
mov ebx, eax
rol edx, 7
imul edi, edx
ror ebx, 2
mov edx, dword [ebp - 0x3c]
add ebx, edi
xor dword [ebp - 0x10], ebx
xor edx, dword [ebp - 0x10]
rol edx, 7
movzx edi, word [ebp - 0xc]
imul edi, edx
mov ebx, dword [ebp - 0x10]
ror ebx, 8
xor ebx, edi
xor eax, ebx
movzx edi, word [ebp - 6]
mov edx, eax
sub edx, dword [ebp - 0xc]
mov ebx, eax
rol edx, 1
imul edi, edx
rol ebx, 8
sub edi, ebx
xor dword [ebp - 0x10], edi
mov edx, dword [ebp - 0x10]
sub edx, ecx
xor edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x3c]
xor eax, edx
mov ebx, eax
mov edx, dword [ebp - 8]
sub edx, eax
ror edx, 0xf
imul edi, edx
mov edx, dword [ebp - 8]
rol ebx, 0xc
xor ebx, edi
xor dword [ebp - 0x10], ebx
movzx edi, word [ebp - 0xc]
sub edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x10]
rol edx, 0xf
imul edi, edx
rol ebx, 2
add ebx, edi
xor eax, ebx
movzx edi, word [ebp - 6]
mov ebx, eax
mov edx, eax
sub edx, ecx
imul edx, edi
shr ebx, 0xe
sub edx, ebx
mov ebx, dword [ebp - 0x10]
xor ebx, edx
mov edx, ebx
sub edx, edi
mov edi, ecx
rol edx, 3
imul edi, edx
mov edx, ebx
shr edx, 0xa
xor edi, edx
movzx edx, word [ebp - 0xc]
xor eax, edi
mov edi, dword [ebp - 8]
xor edi, dword [ebp - 0xc]
and dword [ebp - 0x10], 0
xor edi, ebx
xor edi, eax
mov ebx, edi
xor ecx, edi
imul ecx, edx
xor edi, dword [ebp - 0x18]
ror ebx, 9
xor ebx, ecx
xor ebx, dword [ebp - 0x20]
xor eax, ebx
mov ecx, edi
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
mov dword [ebp - 0x34], eax
jle 0x1043801
cmp dword [ebp - 0x10], 4
jge 0x10437e8
rol dword [ebp - 0x34], 8
mov ebx, dword [ebp - 0x40]
mov dl, byte [ebp - 0x34]
inc dword [ebp - 0x40]
xor byte [ebp - 0x11], dl
mov byte [ebx], dl
jmp 0x10437f6
mov edx, dword [ebp - 0x40]
inc dword [ebp - 0x40]
rol ecx, 8
xor byte [ebp - 0x11], cl
mov byte [edx], cl
inc dword [ebp - 0x10]
mov ebx, dword [ebp - 0x2c]
cmp dword [ebp - 0x10], ebx
jl 0x10437ce
add ebx, 0xfffffffc
test ebx, ebx
jle 0x1043818
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edi, cl
shl edi, cl
mov edx, edi
jmp 0x1043837
xor edx, edx
test ebx, ebx
jge 0x1043837
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x1043837
mov dword [ebp - 0x20], eax
not eax
mov dword [ebp - 0x18], eax
xor edx, edx
xor eax, eax
mov ecx, dword [ebp - 0x4c]
shr ecx, 3
je 0x10439f7
movzx edi, word [ebp - 0xa]
mov dword [ebp - 0x3c], edi
movzx edi, word [ebp - 6]
mov dword [ebp - 0x2c], edi
neg dword [ebp - 0x2c]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
xor edi, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x50], edi
movzx edi, byte [esi + 2]
movzx ecx, byte [esi + 1]
mov ch, byte [esi]
add esi, 8
shl ecx, 8
or ecx, edi
movzx edi, byte [esi - 5]
shl ecx, 8
or ecx, edi
mov dword [ebp - 0x34], ecx
movzx edi, byte [esi - 2]
xor ecx, ecx
xor eax, dword [ebp - 0x34]
mov ch, byte [esi - 4]
mov cl, byte [esi - 3]
shl ecx, 8
or ecx, edi
shl ecx, 8
movzx edi, byte [esi - 1]
or ecx, edi
movzx edi, word [ebp - 8]
mov dword [ebp - 0x44], ecx
mov ecx, eax
ror ecx, 1
xor ecx, dword [ebp - 0x10]
imul ecx, edi
xor ecx, dword [ebp - 0x44]
xor edx, ecx
mov ecx, dword [ebp - 0xc]
xor ecx, edx
mov ebx, edx
rol ecx, 4
imul edi, ecx
mov ecx, dword [ebp - 8]
rol ebx, 1
sub edi, ebx
mov ebx, dword [ebp - 0x3c]
xor eax, edi
add ecx, eax
rol ecx, 7
mov edi, eax
imul ebx, ecx
ror edi, 2
mov ecx, dword [ebp - 0x3c]
add edi, ebx
xor edx, edi
xor ecx, edx
rol ecx, 7
movzx edi, word [ebp - 0xc]
mov ebx, edx
imul edi, ecx
ror ebx, 8
xor ebx, edi
xor eax, ebx
mov ebx, dword [ebp - 0x10]
mov edi, eax
mov ecx, eax
sub ecx, dword [ebp - 0xc]
rol ecx, 1
imul ebx, ecx
rol edi, 8
movzx ecx, word [ebp - 8]
sub ebx, edi
xor edx, ebx
mov ebx, dword [ebp - 0x3c]
mov edi, edx
sub edi, ecx
mov ecx, dword [ebp - 8]
xor edi, dword [ebp - 0xc]
xor eax, edi
sub ecx, eax
mov edi, eax
ror ecx, 0xf
imul ebx, ecx
rol edi, 0xc
mov ecx, dword [ebp - 8]
xor edi, ebx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0xc]
sub ecx, edx
rol ecx, 0xf
imul edi, ecx
rol ebx, 2
add ebx, edi
xor eax, ebx
movzx edi, word [ebp - 8]
mov ebx, eax
mov ecx, eax
sub ecx, edi
imul ecx, dword [ebp - 0x10]
shr ebx, 0xe
sub ecx, ebx
mov ebx, edi
xor edx, ecx
mov ecx, dword [ebp - 0x2c]
add ecx, edx
rol ecx, 3
imul ebx, ecx
mov ecx, edx
shr ecx, 0xa
xor ebx, ecx
xor eax, ebx
xor edx, eax
xor edx, dword [ebp - 0x50]
xor edi, edx
mov ebx, edx
movzx ecx, word [ebp - 0xc]
imul edi, ecx
xor edx, dword [ebp - 0x18]
ror ebx, 9
xor ebx, edi
xor ebx, dword [ebp - 0x20]
xor eax, ebx
mov edi, dword [ebp - 0x40]
mov cl, byte [ebp - 0x11]
xor cl, al
mov byte [edi + 3], al
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 7], dl
mov byte [edi + 2], al
ror edx, 8
xor cl, dl
mov byte [edi + 6], dl
ror eax, 8
xor cl, al
mov byte [edi + 1], al
ror edx, 8
xor cl, dl
mov byte [edi + 5], dl
ror eax, 8
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov ebx, dword [ebp - 0x34]
mov byte [edi], al
mov byte [edi + 4], dl
add edi, 8
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x44]
dec dword [ebp - 0x1c]
ror eax, 8
mov byte [ebp - 0x11], cl
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x40], edi
ror edx, 8
jne 0x1043863
jmp 0x10439fa
mov cl, byte [ebp - 0x11]
mov eax, dword [ebp - 0x48]
cmp cl, byte [eax + 8]
je 0x1043a90
call fcn.012a18fc
mov ecx, dword [ebp - 0x54]
mov esi, eax
and ecx, 0xfffffffc
mov eax, 0xfffff000
mov edi, ecx
and esi, eax
mov edx, 0xffff
lea ecx, [edi + 0xfff]
and ecx, eax
mov eax, dword [ebp - 0x70]
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 0x1043a35
mov ebx, 0xffff
xor edx, edx
div ebx
mov eax, edi
inc edx
cmp edi, ecx
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x50], 0
jae 0x1043a86
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
add eax, 4
cmp eax, ecx
jb 0x1043a7a
mov eax, 0x103a6aa
jmp 0x1043b61
mov ecx, 0x1000000
mov edx, dword [0x13ca1e8]
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
sub ecx, edx
mov dword [ebp - 0x54], ecx
jne 0x1043ab3
test eax, eax
je 0x1043b54
mov ecx, dword [0x1236cc0]
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x30]
sub esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x4c]
add eax, ebx
mov dword [ebp - 0x50], eax
xor edi, edi
dec ecx
js 0x1043af6
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1236cc4]
and edx, 0xfffffff
cmp ebx, edx
jae 0x1043aed
lea ecx, [eax - 1]
jmp 0x1043af2
jbe 0x1043afa
lea edi, [eax + 1]
cmp ecx, edi
jge 0x1043acf
mov ebx, edi
jmp 0x1043b4c
mov ebx, eax
jmp 0x1043b4c
mov eax, dword [ebx*4 + 0x1236cc4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x50]
jae 0x1043b54
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 0x1043b3f
dec ecx
je 0x1043b3a
dec ecx
jne 0x1043b45
mov edx, dword [ebp - 0x54]
jmp 0x1043b45
mov edx, dword [ebp - 0x1c]
jmp 0x1043b45
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x1c]
dec eax
dec eax
jne 0x1043b4b
add dword [edi], edx
inc ebx
cmp ebx, dword [0x1236cc0]
jb 0x1043afe
mov eax, dword [0x109dc84]
mov eax, 0x740e0643
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x70]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x90]
mov esp, ebp
pop ebp
popfd
ret