Function at 0x10003d51
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
xor edx, edx
dec edx
xor edx, ecx
add dword [ebp - 0x1a8], 0x686a
and dword [ebp - 0x124], edx
cmp edx, dword [ebp - 0x1a0]
jae 0x10003d95
sub ecx, ecx
sbb dword [ebp - 0x108], ecx
adc dword [ebp - 0x260], ecx
add ecx, dword [ebp - 0xd4]
add dword [ebp - 0x264], edx
test edx, edx
jne 0x10003d9b
sbb dword [ebp - 0x26c], ecx
xor edx, 0xb41
call fcn.10006505
mov eax, 0xf2
add eax, dword [ebp - 0x128]
xor eax, 0x186b
add eax, dword [ebp - 0x164]
sub dword [ebp - 0xb4], 0x223f
add dword [ebp - 0x94], eax
xor dword [ebp - 0x184], eax
cmp eax, dword [ebp - 0x250]
je 0x10003df2
sub ecx, ecx
mov dword [ebp - 0x1fc], ecx
inc ecx
add ecx, dword [ebp - 0xc4]
cmp ecx, dword [ebp - 0x25c]
jbe 0x10003df8
sub ecx, dword [ebp - 0x8c]
sbb ecx, dword [ebp - 0x70]
call dword [sym.imp.kernel32.dll_GetOEMCP]
mov dword [ebp - 0xf4], eax
push dword [ebp - 0x94]
push dword [ebp - 0x19c]
push 0x400
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
mov edx, 0x6d9
adc edx, dword [ebp - 0x1c4]
add edx, 0x987
or edx, 0xc19
add edx, ecx
dec dword [ebp - 0x94]
inc edx
sub edx, 0xec0
adc edx, dword [ebp - 0x24c]
test edx, edx
jb 0x10003e8b
xor edx, 0x5c48
xor dword [ebp - 0x170], ecx
dec dword [ebp - 0x1dc]
mov ecx, 0x97
add dword [ebp - 0xb0], ecx
and dword [ebp - 0x25c], ecx
sub ecx, edx
or ecx, dword [ebp - 0x170]
xor edx, 0x43fd
or edx, ecx
sub edx, 0x44cd
xor edx, dword [ebp - 0x18c]
call fcn.10002e71
xor edx, edx
or edx, 0x669
or edx, 0x161d
or edx, dword [ebp - 0x154]
xor dword [ebp - 0x248], edx
or edx, ecx
test edx, edx
ja 0x10003edc
xor dword [ebp - 0x1e0], 0xcac
mov ecx, 0x76
and ecx, edx
sub ecx, dword [ebp - 0xdc]
or ecx, dword [ebp - 0x198]
and edx, ecx
dec edx
adc ecx, dword [ebp - 0x11c]
push 0x400
push 0
call dword [sym.imp.kernel32.dll_GlobalAlloc]
call dword [sym.imp.kernel32.dll_GetLastError]
call fcn.10003c6e
mov eax, dword [ebp - 0x200]
add eax, dword [ebp - 0x68]
or eax, 0x58d
or eax, 0xb30
and ecx, 0x7cf
xor ecx, 0x1efe
dec ecx
and dword [ebp - 0x138], eax
inc dword [ebp - 0x1cc]
and dword [ebp - 0x240], 0xf02
cmp eax, dword [ebp - 0x238]
jne 0x10003f50
mov ecx, dword [ebp - 0x28c]
or ecx, eax
cmp dword [ebp - 0xa8], eax
jae 0x10003f50
and ecx, 0xea5
and eax, dword [ebp - 0x1d0]
inc dword [ebp - 0xb4]
and dword [ebp - 0x170], 0x316
and ecx, eax
push 0x800
push 0
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov dword [ebp - 0x1a0], eax
xor ecx, ecx
adc ecx, dword [ebp - 0xb8]
or ecx, dword [ebp - 0x1c8]
add eax, 0x5671
sub ecx, 0x95f
add ecx, 0xe4c
cmp ecx, dword [ebp - 0x170]
je 0x10003fbe
mov eax, 0x45
add dword [ebp - 0x1e0], eax
inc dword [ebp - 0xfc]
dec eax
sub eax, dword [ebp - 0x290]
cmp dword [ebp - 0x290], ecx
ja 0x10003fbe
inc ecx
call fcn.10003c6e
mov eax, 0x21
sub eax, dword [ebp - 0xc8]
add eax, 0x730
and dword [ebp - 0x22c], eax
inc eax
or eax, edx
cmp eax, 0
je 0x10004020
xor edx, edx
inc dword [ebp - 0x7c]
xor dword [ebp - 0xe4], edx
sbb edx, dword [ebp - 0x218]
inc eax
cmp eax, dword [ebp - 0xb4]
ja 0x10004020
add dword [ebp - 0xac], 0xbe0
adc dword [ebp - 0x1d4], edx
add dword [ebp - 0x15c], 0x4805
and dword [ebp - 0x28c], 0xade
add eax, dword [ebp - 0x274]
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [ebp - 0x18c], eax
call dword [sym.imp.kernel32.dll_GetOEMCP]
mov dword [ebp - 0x164], eax
call fcn.100054db
mov eax, 0x27
and eax, dword [ebp - 0x170]
adc dword [ebp - 0xd8], eax
or dword [ebp - 0x1a0], eax
cmp eax, 0
jb 0x10004081
xor ecx, ecx
and ecx, eax
or ecx, eax
xor ecx, dword [ebp - 0x188]
xor ecx, dword [ebp - 0x128]
cmp dword [ebp - 0x170], eax
jne 0x10004083
xor dword [ebp - 0x254], eax
and eax, ecx
xor ecx, eax
sbb ecx, dword [ebp - 0x164]
xor dword [ebp - 0xe4], 0x949
or dword [ebp - 0xf4], 0x5c1f
call dword [sym.imp.MSVCRT.DLL_clock]
call fcn.100053f3
mov ecx, 0xab
sub ecx, dword [ebp - 0x260]
or ecx, 0x3cc7
and ecx, 0x4519
sub ecx, 0xdb8
cmp dword [ebp - 0x1b8], ecx
ja 0x10004122
sub ecx, dword [ebp - 0x11c]
sbb ecx, dword [ebp - 0x168]
add edx, 0x87f
sub ecx, dword [ebp - 0x60]
mov edx, 0x373
xor dword [ebp - 0x24c], edx
sub dword [ebp - 0x1b0], edx
or edx, 0x617e
or edx, 0x3ef
sbb edx, dword [ebp - 0xe8]
xor edx, dword [ebp - 0x214]
and ecx, edx
inc ecx
mov dword [ebp - 0x1a0], ecx
or dword [ebp - 0x274], ecx
add ecx, 0x5192
sub ecx, edx
or edx, 0x4ed0
add edx, 0x290e
add edx, 0x65d0
push dword [ebp - 0xbc]
push dword [ebp - 0x1b4]
push 0x800
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
mov dword [ebp - 0xc4], eax
xor eax, eax
or eax, dword [ebp - 0xd0]
add eax, 0x2e9e
add eax, 0x3bd0
and ecx, 0x182e
add dword [ebp - 0x200], eax
xor eax, ecx
xor eax, 0x6cd
test eax, eax
je 0x100041b8
mov ecx, dword [ebp - 0x260]
xor dword [ebp - 0x130], ecx
or dword [ebp - 0x254], ecx
sub ecx, 0x5900
xor ecx, eax
sbb ecx, dword [ebp - 0x118]
test eax, eax
ja 0x100041c2
sub dword [ebp - 0x64], 0x53b
add dword [ebp - 0x270], eax
add dword [ebp - 0x134], eax
and dword [ebp - 0x100], 0x676e
inc dword [ebp - 0x1ec]
add dword [ebp - 0x254], 0x418a
dec dword [ebp - 0x1b8]
call fcn.10003c6e
mov edx, 0
mov dword [ebp - 0x1b4], edx
or dword [ebp - 0xfc], 0xed6
inc edx
dec edx
or edx, ecx
cmp edx, 0xd0b
je 0x10004243
mov ecx, 0x52
dec dword [ebp - 0x74]
or dword [ebp - 0xcc], ecx
xor ecx, 0x1a04
inc edx
or edx, 0x3ab2
or dword [ebp - 0x284], 0x5311
dec dword [ebp - 0x214]
mov dword [ebp - 0xfc], edx
or dword [ebp - 0xe0], 0x3eb
or dword [ebp - 0xd4], 0x7673
inc dword [ebp - 0x60]
xor dword [ebp - 0x218], 0x74e
push 0x200
push 0x40
call dword [sym.imp.kernel32.dll_GlobalAlloc]
mov dword [ebp - 0x78], eax
mov edx, 0x839
adc dword [ebp - 0x78], ecx
sub edx, dword [ebp - 0x160]
sub edx, 0x1374
xor dword [ebp - 0x1b8], edx
sub dword [ebp - 0x1e8], edx
or dword [ebp - 0x1c8], 0x1c77
xor edx, 0xc5d
xor edx, 0x410
cmp edx, dword [ebp - 0x150]
ja 0x10004302
xor edx, 0xcac
xor ecx, ecx
dec dword [ebp - 0x1d0]
or dword [ebp - 0xc4], 0x6ede
sub dword [ebp - 0x180], ecx
add ecx, 0x1d26
sub ecx, dword [ebp - 0x248]
or edx, 0x43e
and edx, 0x5194
sub edx, 0x37e9
dec dword [ebp - 0x184]
sub dword [ebp - 0x1a8], edx
and dword [ebp - 0x280], 0x6168
and dword [ebp - 0x248], ecx
inc dword [ebp - 0x230]
sub edx, dword [ebp - 0x278]
sub ecx, dword [ebp - 0x224]
xor dword [ebp - 0xb4], ecx
call fcn.10003c6e
sub ecx, ecx
add ecx, 0x457
xor ecx, 0xa75
xor ecx, 0x7d6d
cmp ecx, 0xc9
jbe 0x10004354
mov eax, 0x5fd
adc dword [ebp - 0x1d0], eax
sub dword [ebp - 0x80], eax
add eax, 0x3bbd
cmp dword [ebp - 0x258], eax
je 0x10004356
sub ecx, dword [ebp - 0x118]
add ecx, eax
add ecx, eax
inc ecx
call dword [sym.imp.kernel32.dll_GetACP]
push dword [ebp - 0x1b8]
push dword [ebp - 0xa4]
push 0x600
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
call fcn.1000281a
sub edx, edx
xor edx, 0xc8
or dword [ebp - 0xfc], edx
sub dword [ebp - 0x284], 0x92d
xor dword [ebp - 0x250], edx
xor edx, 0xf03
test edx, edx
je 0x100043dc
mov dword [ebp - 0x288], edx
mov dword [ebp - 0x174], edx
xor ecx, ecx
add dword [ebp - 0x1ec], ecx
add dword [ebp - 0x180], ecx
dec ecx
and ecx, edx
sub edx, 0x5c8b
xor edx, ecx
inc edx
and dword [ebp - 0x27c], edx
adc edx, dword [ebp - 0x7c]
add ecx, 0x7d7
or ecx, 0x286
call dword [sym.imp.kernel32.dll_GetOEMCP]
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [ebp - 0x10c], eax
call fcn.100053f3
sub edx, edx
and edx, eax
xor edx, eax
inc eax
sub edx, dword [ebp - 0x210]
adc edx, dword [ebp - 0x254]
sub edx, 0x4153
or edx, 0x3b3f
and edx, dword [ebp - 0x1a8]
add edx, dword [ebp - 0xb4]
cmp edx, 0x7f
jb 0x1000444f
or eax, dword [ebp - 0x90]
mov eax, 0x8ef
sbb dword [ebp - 0x14c], eax
or eax, edx
and edx, eax
sbb dword [ebp - 0x124], edx
and edx, eax
sub edx, 0x4098
and dword [ebp - 0x78], edx
and eax, edx
add eax, 0x909
call dword [sym.imp.kernel32.dll_GetACP]
xor ecx, ecx
add ecx, dword [ebp - 0x198]
add ecx, dword [ebp - 0x80]
and ecx, 0x9ae
sub ecx, eax
cmp ecx, dword [ebp - 0x134]
jne 0x1000449d
mov eax, dword [ebp - 0x58]
xor dword [ebp - 0xfc], 0x5d68
and dword [ebp - 0xbc], 0x93b
sub eax, ecx
inc eax
cmp dword [ebp - 0x1ac], eax
jb 0x1000449d
and dword [ebp - 0x17c], ecx
call fcn.10006505
mov ecx, 0xc75
sbb dword [ebp - 0xb8], ecx
sub dword [ebp - 0x168], 0xcc4
xor dword [ebp - 0x118], ecx
add ecx, edx
test ecx, ecx
jae 0x100044e9
mov edx, dword [ebp - 0xe8]
inc dword [ebp - 0x258]
cmp ecx, dword [ebp - 0x23c]
jne 0x100044e9
adc ecx, dword [ebp - 0x280]
sub ecx, dword [ebp - 0x180]
or edx, dword [ebp - 0xcc]
call dword [sym.imp.kernel32.dll_GetOEMCP]
call fcn.10006505
mov edx, dword [ebp - 0xe0]
xor edx, 0x2bb
sub dword [ebp - 0x5c], ecx
sub dword [ebp - 0x1cc], 0xbf9
adc dword [ebp - 0x248], ecx
xor dword [ebp - 0x19c], 0x29f7
add dword [ebp - 0x268], edx
cmp dword [ebp - 0x180], edx
jb 0x10004553
sub ecx, ecx
dec dword [ebp - 0x158]
add ecx, edx
cmp ecx, 0
je 0x10004559
or dword [ebp - 0x6c], 0xb27
add edx, 0x492f
xor edx, 0x2cdd
or ecx, dword [ebp - 0x21c]
xor ecx, 0x668f
add ecx, 0x7058
xor ecx, 0x2ea
call dword [sym.imp.kernel32.dll_GetOEMCP]
push 0x40
push 0x1000
push 0x12000
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
mov dword [ebp - 0x2c], eax
push dword [ebp - 0xc4]
push dword [ebp - 0x118]
push 0x300
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
push 0x13cf
push 0x10029ee6
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.MSVCRT.DLL_memmove]
mov edx, 5
sub edx, 0x4c95
xor edx, 0x757
sub dword [ebp - 0x170], 0xf0c
and edx, eax
sub dword [ebp - 0x134], edx
cmp edx, 0
jae 0x1000461c
mov eax, 0xf26
or dword [ebp - 0x268], 0xd6f
mov dword [ebp - 0x9c], eax
sub eax, 0x56
sbb eax, dword [ebp - 0x120]
and dword [ebp - 0x224], 0x3487
add dword [ebp - 0x21c], 0x9d1
and edx, 0x5e6
push dword [ebp - 0x140]
push dword [ebp - 0x218]
push 0x1000
push 0
push 0xffffffffffffffff
call dword [sym.imp.kernel32.dll_VirtualAllocEx]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x2c]
mov ecx, 0x1400
mov eax, 0x4bfa4e88
mov edi, 0xadb
and edi, 0xcae
cmp dword [ebp - 0x19c], edi
jne 0x10004693
xor esi, esi
adc dword [ebp - 0x1bc], esi
adc dword [ebp - 0x284], esi
or esi, 0x58d6
add esi, dword [ebp - 0x164]
sub esi, dword [ebp - 0x1f0]
xor edi, esi
cmp dword [ebp - 0x210], esi
jb 0x1000469f
add dword [ebp - 0x14c], esi
dec dword [ebp - 0xfc]
dec dword [ebp - 0xc0]
sub dword [ebp - 0xe0], esi
and esi, 0xf01
mov edi, dword [edx]
sub edi, eax
mov dword [edx], edi
add edx, 4
add ecx, 0xffffffff
cmp ecx, 0
jne 0x1000464a
mov ecx, dword [ebp - 0x18c]
adc ecx, dword [ebp - 0x1a0]
sub ecx, 0xb77
and dword [ebp - 0x260], ecx
and dword [ebp - 0x70], 0x2d
xor ecx, eax
xor ecx, eax
xor ecx, 0x399d
add ecx, eax
cmp ecx, 0
jne 0x1000473e
sbb dword [ebp - 0xd8], ecx
inc dword [ebp - 0x138]
adc ecx, dword [ebp - 0x74]
adc ecx, dword [ebp - 0x98]
mov eax, 0x8d
xor dword [ebp - 0x25c], eax
and dword [ebp - 0x68], 0x1895
sub dword [ebp - 0x9c], eax
and eax, 0x8ae
sbb eax, dword [ebp - 0x104]
xor eax, dword [ebp - 0x108]
add ecx, 0x2f8
inc dword [ebp - 0x214]
sub dword [ebp - 0xb0], ecx
sub eax, dword [ebp - 0x90]
dec ecx
adc eax, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x2c]
mov ecx, 0xf3d
or ecx, dword [ebp - 0x7c]
sub ecx, dword [ebp - 0x74]
or ecx, dword [ebp - 0x230]
and ecx, 0x4963
sub ecx, esi
or ecx, esi
or dword [ebp - 0xb8], 0x472b
xor dword [ebp - 0x58], ecx
dec ecx
and ecx, 0x7408
add esi, 0x5d84
or dword [ebp - 0x50], 0x5eab
cmp ecx, dword [ebp - 0x1bc]
je 0x100047bd
or esi, dword [ebp - 0x68]
dec esi
adc esi, dword [ebp - 0xc4]
sub esi, dword [ebp - 0x1ec]
xor esi, esi
sub dword [ebp - 0x114], esi
mov dword [ebp - 0x100], esi
xor ecx, 0x2fd7
or ecx, esi
and dword [ebp - 0x88], ecx
or esi, dword [ebp - 0x260]
xor esi, dword [ebp - 0xc4]
xor esi, dword [ebp - 0x1e4]
and esi, 0x3b4d
jmp edx