Function at 0x40d050
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x446e00
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x45a4b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
push 0xb
push str.iCharacters
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00401710
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push eax
mov ecx, ebx
call fcn.0040f650
mov edi, eax
cmp dword [edi + 0x28], 0
je 0x40d0c2
mov esi, 1
jmp 0x40d67f
mov dword [edi + 8], 0
mov dword [edi], 0
mov dword [edi + 4], 2
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 1
mov dword [edi + 0x2c], 1
mov dword [edi + 0x34], 1
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x40d110
push 0x40
push 0x3000
push 0x1000
push 0
push dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
sub esp, 0x18
mov dword [edi + 0xc], eax
mov ecx, esp
mov dword [ebp - 0x4c], esp
push 0x4d0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.8D_04_11_53_51_52_66_B9_0A_00_66_BA_E7_03_83_3D_00_02_3D_03_01_7C_0E_8D_58_4C_E8_E1_02_00_00_FF_0D_00_02_3D_03_83_3D_04_02_3D_03_01_7C_0E_8D_58_4E_E8_CA_02_00_00_FF_0D_04_02_3D_03_83_3D_08_02_3D_03_01_7C_0E_8D_58_50_E8_B3_02_00_00_FF_0D_08_02_3D_03_83_3D_0C_02_3D_03_01_7C_0E_8D_58_52_E8_9C_02_00_00_FF_0D_0C_02_3D_03_B1_19_B2_64_83_3D_10_02_3D_03_01_7C_0E_8D_58_0A_E8_8D_02_00_00_FF_0D_10_02_3D_03_83_3D_14_02_3D_03_01_7C_0E_8D_58_0B_E8_76_02_00_00_FF_0D_14_02_3D_03_83_3D_18_02_3D_03_01_7C_0E_8D_58_0C_E8_5F_02_00_00_FF_0D_18_02_3D_03_83_3D_1C_02_3D_03_01_7C_0E_8D_58_0D_E8_48_02_00_00_FF_0D_1C_02_3D_03_DB_40_0A_DB_58_58_B1_01_B2_62_83_3D_20_02_3D_03_01_7C_0E_8D_58_63_E8_27_02_00_00_FF_0D_20_02_3D_03_B1_02_B2_0B_83_3D_28_02_3D_03_01_7C_26_8D_58_62_E8_0C_02_00_00_B2_0A_38_13_0F_8E_02_00_00_00_88_13_B2_01_38_13_0F_8D_02_00_00_00_88_13_FF_0D_28_02_3D_03_83_3D_24_02_3D_03_01_7C_1A_BA_3F_42_0F_00_81_40_38_10_27_00_00_39_50_38_7E_03_29_50_38_FF_0D_24_02_3D_03_83_3D_2C_02_3D_03_01_7C_20_66_BA_E8_03_66_39_50_56_7C_0C_66_BA_0F_27_66_39_50_56_7C_02_31_D2_66_89_50_56_FF_0D_2C_02_3D_03_83_3D_30_02_3D_03_01_7C_20_66_BA_18_FC_66_39_50_56_7F_0C_66_BA_F1_D8_66_39_50_56_7F_02_31_D2_66_89_50_56_FF_0D_30_02_3D_03_5A_59_5B_8B_7C_11_38_57
mov byte [ecx], 0
call fcn.00401710
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
mov dword [ebp - 0x50], esp
push 0xe
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.8B_7C_0A_38_57
mov byte [ecx], 0
call fcn.00401710
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
push 0xe
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.8B_7C_0A_38_57
mov byte [ecx], 0
call fcn.00401710
mov ecx, edi
mov byte [ebp - 4], 0
call fcn.004026f0
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, ebx
push eax
call fcn.0040f400
push dword [edi + 0xc]
neg eax
push ecx
sbb eax, eax
neg eax
inc eax
mov dword [ebp - 0x4c], eax
lea eax, [edi + 0x74]
push 0x33d0000
push eax
call fcn.00402960
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
push 0x3e
push str.66_01_0B_66_39_13_7E_03_66_29_13_C3_00_0B_38_13_7E_02_28_13_C3
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
lea edx, [ebp - 0x48]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.0040a020
mov byte [ebp - 4], 3
cmp dword [ebp - 0x14], 0x10
jb 0x40d216
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
lea eax, [ebp - 0x48]
push eax
mov eax, dword [edi + 0xc]
lea ecx, [ebx + 0x2c]
add eax, 0x300
push eax
call fcn.00412a30
test eax, eax
jne 0x40d236
xor esi, esi
jmp 0x40d669
push 2
push 0x4529ec
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 5
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x200
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d287
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x4529f0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 6
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x204
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d2d8
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x4529f4
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 7
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x208
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d329
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x4529f8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 8
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x20c
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d37a
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x4529fc
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 9
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x210
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d3cb
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a00
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x214
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d41c
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a04
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x218
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d46d
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a08
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x21c
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d4be
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a0c
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x220
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d50f
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a10
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x224
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d560
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a14
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x228
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d5b1
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a18
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x22c
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d602
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
push 2
push 0x452a1c
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00401710
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x28]
mov esi, dword [edi + 0xc]
mov ecx, ebx
push eax
add esi, 0x230
call fcn.0040f5a0
mov byte [ebp - 4], 3
mov dword [eax + 8], esi
cmp dword [ebp - 0x14], 0x10
jb 0x40d653
push dword [ebp - 0x28]
call fcn.0042d411
add esp, 4
sub esp, 0x10
lea eax, [ebp - 0x40]
push dword [ebp - 0x4c]
push ecx
push 0
push eax
mov ecx, ebx
call fcn.0040e4c0
mov esi, eax
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x40d67f
cmp dword [ebp - 0x44], 0
jle 0x40d67f
push eax
call fcn.0042dce4
add esp, 4
cmp dword [ebp - 0x2c], 0x10
jb 0x40d690
push dword [ebp - 0x40]
call fcn.0042d411
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042d416
mov esp, ebp
pop ebp
ret