Function at 0x1253600
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 - 0x9c], eax
lea eax, [ebp + 4]
sub eax, 4
mov dword [ebp - 0x88], ecx
mov ecx, 0xfffffff
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x8c], edi
lea edi, [eax + 0xc]
mov dword [ebp - 0x74], eax
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
and eax, ecx
and esi, ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x34], ecx
xor edx, edx
lea ecx, [ecx + eax - 1]
mov eax, ecx
div dword [ebp - 0x34]
mov eax, dword [0x1116588]
mov dword [ebp - 0x58], edi
mov ebx, 0x1000000
add esi, ebx
sub ecx, edx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x18], ecx
mov eax, dword [0x1011bb0]
mov dword [ebp - 0x30], eax
mov eax, dword [0x1116588]
mov eax, dword [0x1011bb0]
test eax, eax
je 0x125372a
and dword [ebp - 0x44], 0
mov eax, dword [0x1011bb0]
dec eax
lea ecx, [eax + 1]
mov dword [ebp - 0x1c], ecx
xor eax, eax
test ecx, ecx
je 0x12536d3
mov edx, dword [0x12d47a4]
shr dword [ebp - 0x1c], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x12d47a4], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x1c], 0
jne 0x12536a9
xor edx, edx
div ecx
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], edx
jbe 0x125371c
mov eax, 0xcb65
mov ecx, 0xffff349a
lea edx, [edx*4 + 0x12d4c14]
inc dword [ebp - 0x44]
lock cmpxchg dword [edx], ecx
cmp eax, 0xcb65
je 0x12538bc
mov ecx, dword [0x1011bb0]
mov eax, dword [ebp - 0x1c]
inc eax
xor edx, edx
div ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], edx
cmp eax, dword [ebp - 0x30]
jb 0x12536e0
and dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0
jne 0x12537b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
and dword [ebp - 0x1c], 0
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x1c]
push 0x40
push 0x1000
push dword [ebp - 0x18]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x12538d3
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x1c], 0x11
jb 0x1253737
and dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp dword [0x12ef80c], eax
ja 0x1253774
test al, 3
je 0x125378c
test eax, eax
je 0x1253788
push 0x8000
push 0
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
and dword [ebp - 0x14], 0
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x14], 0
je 0x1253679
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x12537b0
mov byte [eax], 0
inc eax
dec ecx
jne 0x12537a9
mov eax, 0x4cc24d8e
add dword [edi], 8
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
and eax, 0xfffffff
lea ecx, [eax + esi]
mov dword [ebp - 0x34], ecx
mov ecx, dword [0x1116588]
mov dword [ebp - 0x3c], esi
sub ecx, eax
sub dword [ebp - 0x3c], ebx
mov dword [ebp - 0x44], eax
inc ecx
mov edx, ecx
xor eax, eax
test ecx, ecx
je 0x1253809
mov esi, dword [0x12d47a4]
imul esi, esi, 0x343fd
add esi, 0x269ec3
mov dword [0x12d47a4], esi
shr esi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, esi
test edx, edx
jne 0x12537e2
xor edx, edx
div ecx
mov eax, dword [ebp - 0x14]
add eax, edx
push eax
push dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x3c]
mov eax, 0xd9d1c66e
mov eax, dword [ebp - 0x34]
mov edi, dword [eax + 4]
mov esi, dword [eax]
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], edi
mov byte [ebp - 0xd], 0
mov eax, 0x59ea508a
mov ecx, dword [0x11e47bc]
and dword [ebp - 0x2c], 0
and dword [ebp - 0x28], 0
mov eax, 0xfffffff
and esi, eax
and edi, eax
add esp, 0x10
add esi, ebx
mov eax, ebx
sub eax, ecx
mov dword [ebp - 0x48], eax
jne 0x12538db
and dword [ebp - 0x24], 0
test edi, edi
jbe 0x1253aeb
mov ecx, 0x3d5e919b
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov edx, eax
imul eax, eax, 0x5653
rol eax, 0xb
ror edx, 0xb
xor eax, edx
add dword [ebp - 0x2c], eax
inc dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x24], edi
jb 0x1253878
jmp 0x1253aeb
mov eax, dword [0x1116588]
imul eax, dword [ebp - 0x1c]
lea eax, [eax + section..data]
mov dword [ebp - 0x14], eax
jmp 0x1253720
mov dword [ebp - 0x14], eax
jmp 0x1253765
mov edx, dword [0x100003c]
lea eax, [edi + esi]
lea edx, [edx + 0x10000a0]
mov ecx, esi
sub ecx, ebx
mov dword [ebp - 0x40], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x20], edx
mov edx, ecx
and edx, 0xfffff000
mov dword [ebp - 0x18], edx
mov edx, ecx
sub edx, dword [ebp - 0x18]
add ecx, edi
mov edi, ecx
and edi, 0xfffff000
sub ecx, edi
add eax, ebx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x6c], edi
mov edx, eax
add ecx, eax
mov dword [ebp - 0x64], ecx
cmp eax, ecx
je 0x125393d
mov eax, dword [ebp - 0x18]
cmp dword [edx], eax
jae 0x125393d
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x64]
jne 0x125392e
and dword [ebp - 0x5c], 0
cmp edx, dword [ebp - 0x64]
je 0x125397a
mov eax, dword [ebp - 0x18]
cmp dword [edx], eax
jne 0x125397a
mov eax, dword [edx + 4]
sub eax, 8
shr eax, 1
je 0x125397a
lea ecx, [edx + 8]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, word [ecx]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x30]
jae 0x125397a
inc dword [ebp - 0x5c]
add dword [ebp - 0x18], 2
cmp dword [ebp - 0x5c], eax
jne 0x125395d
mov ecx, 0x3d5e919b
jmp 0x1253984
mov edi, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x64]
je 0x1253aa5
cmp dword [edx], edi
ja 0x1253aa5
mov eax, dword [edx + 4]
lea edi, [eax - 8]
mov eax, dword [ebp - 0x5c]
shr edi, 1
cmp eax, edi
jne 0x12539c1
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x64]
je 0x1253aa5
mov eax, dword [ebp - 0x6c]
cmp dword [edx], eax
ja 0x1253aa5
and dword [ebp - 0x5c], 0
jmp 0x1253995
mov edi, dword [ebp - 0x6c]
cmp dword [edx], edi
jne 0x12539db
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x68]
jae 0x1253aa5
mov edi, 0xf000
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
test word [edx + eax*2 + 8], di
je 0x1253981
mov edi, dword [edx]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
lea edi, [eax + edi + 0x1000000]
xor eax, eax
mov dword [ebp - 0x18], edi
sub dword [ebp - 0x18], esi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x30], eax
je 0x1253a52
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov edi, eax
imul edi, edi, 0x5653
rol edi, 0xb
ror eax, 0xb
xor edi, eax
mov eax, edi
add dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp - 0x18]
jb 0x1253a10
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x78], eax
xor edi, edi
movzx eax, byte [ebp + edi - 0x78]
add eax, ecx
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov esi, eax
imul eax, eax, 0x5653
rol eax, 0xb
ror esi, 0xb
xor eax, esi
add dword [ebp - 0x2c], eax
inc edi
cmp edi, 4
mov dword [ebp - 0x28], eax
jb 0x1253a5f
mov esi, dword [ebp - 0x24]
add esi, 4
jmp 0x1253981
mov eax, dword [ebp - 0x40]
xor edi, edi
sub eax, esi
mov dword [ebp - 0x20], eax
je 0x1253aeb
movzx eax, byte [esi + edi]
add eax, ecx
add dword [ebp - 0x2c], eax
add eax, dword [ebp - 0x28]
imul eax, eax, 0x3d5e919b
ror eax, 0x13
imul eax, eax, 0x3d5e919b
ror eax, 0x13
mov edx, eax
imul eax, eax, 0x5653
rol eax, 0xb
ror edx, 0xb
xor eax, edx
add dword [ebp - 0x2c], eax
inc edi
mov dword [ebp - 0x28], eax
cmp edi, dword [ebp - 0x20]
jb 0x1253ab1
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 0x1253aed
mov eax, 0x56f8cb15
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
and eax, 7
mov dword [ebp - 0x20], eax
je 0x1253f4e
mov edi, dword [ebp - 0x3c]
not edi
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x14], ecx
cmp eax, ecx
jle 0x1253b5a
push 0x38
pop edx
cmp dword [ebp - 0x14], 4
movzx ebx, byte [esi]
jge 0x1253b47
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x50], ebx
jmp 0x1253b4e
mov ecx, edx
shl ebx, cl
or dword [ebp - 0x48], ebx
inc esi
inc dword [ebp - 0x14]
sub edx, 8
cmp dword [ebp - 0x14], eax
jl 0x1253b34
movzx ecx, word [ebp - 6]
mov eax, dword [ebp - 0x3c]
sub eax, ecx
movzx ebx, word [ebp - 8]
sub eax, dword [ebp - 0xc]
movzx edx, word [ebp - 0xc]
xor edi, eax
mov eax, edi
mov dword [ebp - 0x54], edx
xor edx, edi
imul edx, ebx
ror eax, 0xe
xor eax, edx
movzx edx, word [ebp - 0xa]
xor eax, dword [ebp - 0x3c]
xor ecx, eax
imul ecx, edx
mov ebx, eax
ror ebx, 0xb
sub ecx, ebx
mov ebx, dword [ebp - 0x54]
xor edi, ecx
mov dword [ebp - 0x24], edx
mov edx, edi
mov ecx, edi
sub ecx, dword [ebp - 8]
ror ecx, 0xb
imul ebx, ecx
movzx ecx, word [ebp - 8]
rol edx, 3
add edx, ebx
mov ebx, ecx
xor eax, edx
mov edx, eax
xor ebx, eax
movzx ecx, word [ebp - 6]
imul ebx, ecx
mov ecx, dword [ebp - 0x24]
ror edx, 1
add edx, ebx
mov ebx, ecx
xor edi, edx
xor ebx, edi
movzx edx, word [ebp - 8]
imul ebx, edx
mov edx, edi
shr edx, 0xa
add ebx, edx
mov edx, dword [ebp - 8]
xor eax, ebx
mov ebx, eax
sub edx, eax
rol edx, 0xc
imul ecx, edx
ror ebx, 0x10
add ebx, ecx
mov ecx, dword [ebp - 8]
xor edi, ebx
mov ebx, dword [ebp - 0x54]
mov edx, edi
xor ecx, edi
ror ecx, 8
imul ebx, ecx
mov ecx, dword [ebp - 0x54]
ror edx, 0x10
add edx, ebx
xor eax, edx
mov edx, ecx
xor edx, eax
movzx ebx, word [ebp - 6]
mov dword [ebp - 0x14], ebx
rol edx, 3
imul ebx, edx
mov edx, eax
shr edx, 0xc
add ebx, edx
xor edi, ebx
mov ebx, edi
ror ebx, 3
movzx edx, word [ebp - 8]
sub ebx, edx
mov dword [ebp - 0x18], edx
imul ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
xor edx, dword [ebp - 0xc]
and dword [ebp - 0x14], 0
xor edx, edi
xor eax, ebx
xor edx, eax
mov edi, edx
sub edi, dword [ebp - 0x18]
rol edi, 5
imul ecx, edi
mov edi, edx
xor edx, dword [ebp - 0x48]
shr edi, 0xa
xor ecx, edi
xor ecx, dword [ebp - 0x50]
xor eax, ecx
mov edi, dword [ebp - 0x20]
test edi, edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], edx
jle 0x1253c98
mov ebx, dword [ebp - 0x38]
inc dword [ebp - 0x38]
cmp dword [ebp - 0x14], 4
jge 0x1253c84
rol dword [ebp - 0x4c], 8
mov cl, byte [ebp - 0x4c]
mov byte [ebx], cl
jmp 0x1253c8d
rol dword [ebp - 0x40], 8
mov cl, byte [ebp - 0x40]
mov byte [ebx], cl
xor byte [ebp - 0xd], cl
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1253c6d
add edi, 0xfffffffc
test edi, edi
jle 0x1253f34
push 4
pop ecx
sub ecx, edi
shl ecx, 3
shr edx, cl
shl edx, cl
mov ebx, 0x1000000
mov edi, dword [ebp - 0x44]
shr edi, 3
test edi, edi
jbe 0x1253e94
movzx ecx, word [ebp - 0xa]
mov dword [ebp - 0x24], ecx
movzx ecx, word [ebp - 6]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x7c], ecx
movzx ecx, word [ebp - 8]
mov dword [ebp - 0x30], ecx
neg dword [ebp - 0x30]
mov dword [ebp - 0x18], ecx
movzx ecx, word [ebp - 0xc]
mov dword [ebp - 0x54], ecx
movzx edi, byte [esi + 1]
movzx ecx, byte [esi]
movzx ebx, byte [esi + 5]
shl ecx, 8
or edi, ecx
movzx ecx, byte [esi + 2]
shl edi, 8
or edi, ecx
shl edi, 8
movzx ecx, byte [esi + 3]
or edi, ecx
movzx ecx, byte [esi + 4]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi + 6]
xor eax, edi
shl ecx, 8
or ecx, ebx
shl ecx, 8
movzx ebx, byte [esi + 7]
mov dword [ebp - 0x4c], edi
mov edi, eax
or ecx, ebx
sub edi, dword [ebp - 0x14]
mov dword [ebp - 0x40], ecx
sub edi, dword [ebp - 0xc]
add esi, 8
xor edi, ecx
xor edx, edi
mov edi, dword [ebp - 0x54]
xor edi, edx
imul edi, dword [ebp - 0x18]
mov ecx, edx
ror ecx, 0xe
xor ecx, edi
xor eax, ecx
mov edi, dword [ebp - 0x14]
xor edi, eax
mov ecx, eax
imul edi, dword [ebp - 0x24]
ror ecx, 0xb
sub edi, ecx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0xc]
mov ecx, edx
sub ecx, dword [ebp - 8]
ror ecx, 0xb
imul edi, ecx
rol ebx, 3
add ebx, edi
movzx ecx, word [ebp - 8]
xor eax, ebx
mov ebx, dword [ebp - 0x24]
mov edi, eax
xor ecx, eax
imul ecx, dword [ebp - 0x14]
ror edi, 1
add edi, ecx
movzx ecx, word [ebp - 8]
xor edx, edi
mov edi, dword [ebp - 0x24]
xor edi, edx
imul edi, ecx
mov ecx, edx
shr ecx, 0xa
add edi, ecx
xor eax, edi
mov ecx, dword [ebp - 8]
mov edi, eax
sub ecx, eax
rol ecx, 0xc
imul ebx, ecx
mov ecx, dword [ebp - 8]
ror edi, 0x10
add edi, ebx
xor edx, edi
mov ebx, edx
movzx edi, word [ebp - 0xc]
xor ecx, edx
ror ecx, 8
ror ebx, 0x10
imul edi, ecx
add ebx, edi
movzx edi, word [ebp - 0xc]
xor eax, ebx
mov ecx, edi
xor ecx, eax
rol ecx, 3
mov ebx, dword [ebp - 0x14]
imul ebx, ecx
mov ecx, eax
shr ecx, 0xc
add ebx, ecx
xor edx, ebx
mov ebx, edx
ror ebx, 3
movzx ecx, word [ebp - 8]
sub ebx, ecx
imul ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x7c]
xor ecx, edx
xor eax, ebx
xor ecx, eax
mov edx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x54], edi
add ecx, edx
rol ecx, 5
imul edi, ecx
mov ecx, edx
xor edx, dword [ebp - 0x48]
shr ecx, 0xa
xor edi, ecx
xor edi, dword [ebp - 0x50]
xor eax, edi
mov edi, dword [ebp - 0x38]
mov cl, byte [ebp - 0xd]
xor cl, al
xor cl, dl
mov byte [edi + 3], al
ror eax, 8
mov byte [edi + 7], dl
mov byte [edi + 2], al
xor cl, al
ror edx, 8
xor cl, dl
ror eax, 8
xor cl, al
mov byte [edi + 6], dl
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 byte [ebp - 0xd], cl
mov ecx, dword [ebp - 0x4c]
mov byte [edi], al
mov byte [edi + 4], dl
add edi, 8
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x40]
dec dword [ebp - 0x20]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x38], edi
ror eax, 8
ror edx, 8
jne 0x1253cf0
mov ebx, 0x1000000
movzx ecx, byte [ebp - 0xd]
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax + 8]
sub ecx, eax
je 0x1253f62
call fcn.01244f80
mov esi, eax
mov edx, 0xfffff000
mov eax, dword [ebp - 0x58]
and eax, 0xfffffffc
and esi, edx
mov edi, eax
mov eax, dword [ebp - 0x74]
mov dword [eax + 8], 0x10d8814
lea ecx, [edi + 0xfff]
and ecx, edx
xor eax, eax
mov edx, 0xffff
mov ebx, dword [0x12d47a4]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x12d47a4], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x1253ed6
mov ebx, 0xffff
div ebx
mov dword [ebp - 0x90], esi
inc edx
mov dword [ebp - 0x88], edx
cmp edi, ecx
mov eax, edi
mov dword [ebp - 0x58], 0
jae 0x1253f2a
mov edx, dword [ebp - 0x58]
mov dword [eax], edx
add eax, 4
cmp eax, ecx
jb 0x1253f1e
mov eax, 0x10d8814
jmp 0x125402e
xor edx, edx
test edi, edi
jge 0x1253caf
neg edi
shl edi, 3
mov ecx, edi
shr eax, cl
shl eax, cl
jmp 0x1253caf
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov dword [ebp - 0x50], eax
not eax
mov dword [ebp - 0x48], eax
xor eax, eax
jmp 0x1253cb4
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x1c]
mov ecx, dword [0x11e47bc]
sub ebx, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], ebx
jne 0x1253f80
test eax, eax
je 0x1254021
mov esi, dword [ebp - 0x1c]
sub esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x11efd70]
add eax, edi
xor ebx, ebx
dec ecx
mov dword [ebp - 0x58], eax
js 0x1253fc3
lea eax, [ecx + ebx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x11efd74]
and edx, 0xfffffff
cmp edi, edx
jae 0x1253fba
lea ecx, [eax - 1]
jmp 0x1253fbf
jbe 0x1253fc7
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x1253f9c
mov edi, ebx
jmp 0x1254019
mov edi, eax
jmp 0x1254019
mov eax, dword [edi*4 + 0x11efd74]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x58]
jae 0x1254021
lea ebx, [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 0x125400c
dec ecx
je 0x1254007
dec ecx
jne 0x1254012
mov edx, dword [ebp - 0x34]
jmp 0x1254012
mov edx, dword [ebp - 0x20]
jmp 0x1254012
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x20]
dec eax
dec eax
jne 0x1254018
add dword [ebx], edx
inc edi
cmp edi, dword [0x11efd70]
jb 0x1253fcb
mov eax, dword [0x1116588]
mov eax, 0x254a4ac6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x74]
mov dword [ecx + 8], eax
mov esi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x90]
mov edi, dword [ebp - 0x8c]
mov esp, ebp
pop ebp
popfd
ret