Function at 0x11031dc0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ecx
push esi
push edi
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x11031e5e
lea ecx, [esp + 8]
push ecx
push str.StartYear
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x11031e5e
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x14], 0x10
jb 0x11031e08
mov ecx, dword [ecx]
call fcn.11011f90
mov edi, eax
test edi, edi
js 0x11031e5e
cmp byte [0x110c6683], 0
je 0x11031e36
test byte [0x110c66ec], 1
je 0x11031e36
push 1
mov edx, 1
mov ecx, str.Applying_starting_year_patch.
call fcn.11011060
lea eax, [esp + 8]
push eax
push 0x40
push 4
push 0x4a336c
call esi
lea eax, [esp + 8]
mov dword [0x4a336c], edi
push eax
push dword [esp + 0xc]
push 4
push 0x4a336c
call esi
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x11031ea6
lea ecx, [esp + 8]
push ecx
push str.StartMonth
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x11031ea6
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x14], 0x10
jb 0x11031e9d
mov ecx, dword [ecx]
call fcn.11011f90
mov edi, eax
jmp 0x11031ea9
or edi, 0xffffffff
test edi, edi
js 0x11031f00
mov eax, 0xb
cmp edi, eax
cmovg edi, eax
cmp byte [0x110c6683], 0
je 0x11031ed8
test byte [0x110c66ec], 1
je 0x11031ed8
push 1
lea edx, [eax - 0xa]
mov ecx, str.Applying_starting_month_patch.
call fcn.11011060
lea eax, [esp + 8]
push eax
push 0x40
push 4
push 0x4a3382
call esi
lea eax, [esp + 8]
mov dword [0x4a3382], edi
push eax
push dword [esp + 0xc]
push 4
push 0x4a3382
call esi
push ebx
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x11031f49
lea ecx, [esp + 0xc]
push ecx
push str.StartDay
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x11031f49
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x14], 0x10
jb 0x11031f40
mov ecx, dword [ecx]
call fcn.11011f90
mov ebx, eax
jmp 0x11031f4c
or ebx, 0xffffffff
test ebx, ebx
js 0x11031fb4
cmp edi, 1
jne 0x11031f5f
cmp ebx, 0x1c
jle 0x11031f5f
lea ebx, [edi + 0x1b]
jmp 0x11031f69
mov eax, 0x1e
cmp ebx, eax
cmovg ebx, eax
cmp byte [0x110c6683], 0
je 0x11031f8c
test byte [0x110c66ec], 1
je 0x11031f8c
push 1
mov edx, 1
mov ecx, str.Applying_starting_day_patch.
call fcn.11011060
lea eax, [esp + 0xc]
push eax
push 0x40
push 1
push 0x4a3356
call esi
lea eax, [esp + 0xc]
mov byte [0x4a3356], bl
push eax
push dword [esp + 0x10]
push 1
push 0x4a3356
call esi
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x11031ffa
lea ecx, [esp + 0xc]
push ecx
push str.StartXPos
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x11031ffa
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x14], 0x10
jb 0x11031ff3
mov ecx, dword [ecx]
call fcn.11011f90
jmp 0x11031ffd
or eax, 0xffffffff
cmp eax, 0xffffffff
je 0x11032087
xor edi, edi
test eax, eax
cmovns edi, eax
cmp byte [0x110c6683], 0
je 0x11032030
test byte [0x110c66ec], 1
je 0x11032030
push 1
mov edx, 1
mov ecx, str.Applying_starting_x_position_patch.
call fcn.11011060
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x4bc990
call esi
lea eax, [esp + 0xc]
mov dword [0x4bc990], edi
push eax
push dword [esp + 0x10]
push 4
push 0x4bc990
call esi
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x4bcc08
call esi
lea eax, [esp + 0xc]
mov dword [0x4bcc08], edi
push eax
push dword [esp + 0x10]
push 4
push 0x4bcc08
call esi
mov byte [0x110c683e], 1
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x110320cd
lea ecx, [esp + 0xc]
push ecx
push str.StartYPos
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x110320cd
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x14], 0x10
jb 0x110320c6
mov ecx, dword [ecx]
call fcn.11011f90
jmp 0x110320d0
or eax, 0xffffffff
cmp eax, 0xffffffff
je 0x1103215a
xor edi, edi
test eax, eax
cmovns edi, eax
cmp byte [0x110c6683], 0
je 0x11032103
test byte [0x110c66ec], 1
je 0x11032103
push 1
mov edx, 1
mov ecx, str.Applying_starting_y_position_patch.
call fcn.11011060
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x4bc995
call esi
lea eax, [esp + 0xc]
mov dword [0x4bc995], edi
push eax
push dword [esp + 0x10]
push 4
push 0x4bc995
call esi
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x4bcc0d
call esi
lea eax, [esp + 0xc]
mov dword [0x4bcc0d], edi
push eax
push dword [esp + 0x10]
push 4
push 0x4bcc0d
call esi
mov byte [0x110c683e], 1
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x480dc1
call esi
mov eax, 0x110314f0
sub eax, 0x480dc5
mov dword [0x480dc1], eax
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push 4
push 0x480dc1
call esi
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x110321d3
lea ecx, [esp + 0xc]
push ecx
push str.ViewXPos
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x110321d3
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x14], 0x10
jb 0x110321ca
mov ecx, dword [ecx]
call fcn.11011f90
mov ebx, eax
jmp 0x110321d6
or ebx, 0xffffffff
cmp ebx, 0xffffffff
je 0x1103223d
xor eax, eax
test ebx, ebx
cmovns eax, ebx
cmp byte [0x110c6683], 0
mov ebx, eax
mov edi, ebx
mov dword [0x110e7f88], edi
je 0x11032215
test byte [0x110c66ec], 1
je 0x11032215
push 1
mov edx, 1
mov ecx, str.Applying_starting_x_view_patch.
call fcn.11011060
mov edi, dword [0x110e7f88]
lea eax, [esp + 0xc]
push eax
push 0x40
push 4
push 0x51de2c
call esi
lea eax, [esp + 0xc]
mov dword [0x51de2c], edi
push eax
push dword [esp + 0x10]
push 4
push 0x51de2c
call esi
call fcn.1100a210
add eax, 4
push eax
call fcn.1100a210
mov ecx, eax
call fcn.1100a300
test eax, eax
je 0x11032285
lea ecx, [esp + 0xc]
push ecx
push str.ViewYPos
push str.Misc
mov ecx, eax
call fcn.11003200
test al, al
je 0x11032285
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x14], 0x10
jb 0x1103227c
mov ecx, dword [ecx]
call fcn.11011f90
mov edi, eax
jmp 0x11032288
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x110322f1
xor eax, eax
test edi, edi
push ebp
cmovns eax, edi
cmp byte [0x110c6683], 0
mov edi, eax
mov ebp, edi
mov dword [0x110e7f8c], ebp
je 0x110322c8
test byte [0x110c66ec], 1
je 0x110322c8
push 1
mov edx, 1
mov ecx, str.Applying_starting_y_view_patch.
call fcn.11011060
mov ebp, dword [0x110e7f8c]
lea eax, [esp + 0x10]
push eax
push 0x40
push 4
push 0x51de30
call esi
lea eax, [esp + 0x10]
mov dword [0x51de30], ebp
push eax
push dword [esp + 0x14]
push 4
push 0x51de30
call esi
pop ebp
cmp ebx, 0xffffffff
pop ebx
jne 0x110322fc
cmp edi, 0xffffffff
je 0x1103232d
lea eax, [esp + 8]
push eax
push 0x40
push 4
push 0x4bcf08
call esi
mov eax, 0x11031320
sub eax, 0x4bcf0c
mov dword [0x4bcf08], eax
lea eax, [esp + 8]
push eax
push dword [esp + 0xc]
push 4
push 0x4bcf08
call esi
pop edi
pop esi
pop ecx
ret