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

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp byte [0x1012f0dc], 0
je 0x1003e56f
push ebx
mov ebx, dword [0x1012f0e0]
push esi
push edi
mov eax, dword [ebx]
mov esi, dword [eax]
cmp esi, eax
je 0x1003e30f
mov edi, dword [esi + 0x28]
cmp byte [edi + 0x1c], 0
je 0x1003e2c5
push ecx
push edi
call fcn.10096060
push ecx
push edi
call fcn.10096120
push ecx
push edi
call fcn.100961e0
push ecx
push edi
call fcn.100962a0
push ecx
push edi
call fcn.10096360
push ecx
push edi
call fcn.10096420
push ecx
push edi
call fcn.100964e0
push ecx
push edi
call fcn.100965a0
push ecx
push edi
call fcn.10096660
push ecx
push edi
call fcn.10096720
push ecx
push edi
call fcn.100967e0
push ecx
push edi
call fcn.100968a0
push ecx
push edi
call fcn.10096960
mov eax, dword [edi]
mov ecx, edi
mov byte [edi + 0x1c], 0
call dword [eax + 8]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1003e2eb
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1003e2e7
cmp esi, dword [eax + 8]
jne 0x1003e2e7
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1003e2d7
mov esi, eax
jmp 0x1003e301
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1003e301
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1003e2f5
cmp esi, dword [ebx]
jne 0x1003e256
mov ebx, dword [0x1012f0e0]
test ebx, ebx
je 0x1003e3ad
mov edi, dword [ebx]
mov esi, dword [edi]
cmp esi, edi
je 0x1003e372
nop
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1003e32d
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x1003e354
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1003e350
nop
cmp esi, dword [eax + 8]
jne 0x1003e350
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1003e340
mov esi, eax
jmp 0x1003e36c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1003e36c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x1003e360
mov edi, dword [ebx]
cmp esi, edi
jne 0x1003e320
push dword [edi + 4]
mov ecx, ebx
push ebx
call fcn.1003f780
mov dword [edi + 4], edi
mov ecx, ebx
mov dword [edi], edi
mov dword [edi + 8], edi
mov dword [ebx + 4], 0
mov eax, dword [ebx]
push dword [eax + 4]
push ebx
call fcn.1003f780
push 0x2c
push dword [ebx]
call fcn.100b4eda
push 0x40
push ebx
call fcn.100b4eda
add esp, 0x10
mov esi, dword [0x1012f0cc]
test esi, esi
je 0x1003e3c9
mov ecx, esi
call fcn.1005be30
push 0x78
push esi
call fcn.100b4eda
add esp, 8
mov edi, dword [0x1012f0d0]
test edi, edi
je 0x1003e4ba
lea esi, [edi + 0x44]
mov dword [edi], vtable.Drawing::StatsDisplay.0
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [edi + 8], 0
jbe 0x1003e408
nop dword [eax]
mov eax, dword [edi + 4]
push 0x48
mov eax, dword [eax]
push dword [eax + 8]
call fcn.100b4eda
add esp, 8
cmp dword [edi + 8], 0
ja 0x1003e3f0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea ecx, [edi + 0x5c]
call fcn.1003e820
mov ecx, dword [edi + 0x28]
cmp ecx, 0x10
jb 0x1003e452
mov eax, dword [edi + 0x14]
inc ecx
cmp ecx, 0x1000
jb 0x1003e448
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003e575
mov eax, edx
push ecx
push eax
call fcn.100b4eda
add esp, 8
lea esi, [edi + 0xc]
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0xf
mov ecx, esi
mov byte [edi + 0x14], 0
mov eax, dword [esi]
push dword [eax + 4]
push esi
call fcn.1003f860
push 0x30
push dword [esi]
call fcn.100b4eda
mov ecx, dword [edi + 4]
add esp, 8
mov eax, dword [ecx + 4]
mov dword [eax], 0
mov eax, dword [ecx]
test eax, eax
je 0x1003e4a5
mov esi, dword [eax]
push 0xc
push eax
call fcn.100b4eda
add esp, 8
mov eax, esi
test esi, esi
jne 0x1003e492
push 0xc
push dword [edi + 4]
call fcn.100b4eda
push 0x68
push edi
call fcn.100b4eda
add esp, 0x10
mov esi, dword [0x1012f0d4]
call fcn.1003b980
push esi
push 0xfffffffffffffffc
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
xor esi, esi
push 0x20
push dword [esi + 0x1013aed0]
call fcn.100b4eda
add esi, 4
add esp, 8
cmp esi, 0x2c
jb 0x1003e4d1
mov ebx, dword [0x1012f158]
cmp byte [ebx + 0x1c], 0
je 0x1003e54c
mov edx, dword [0x10122eb8]
cmp edx, 0xffffffff
jne 0x1003e50b
call fcn.10055890
mov edx, dword [0x10122eb8]
mov edx, dword [ebx + edx*4 + 8]
mov ecx, dword [ebx]
call fcn.100ac500
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov edi, eax
lea eax, [ebp - 4]
push eax
push 0x40
push dword [ebx + 0x10]
push edi
call esi
mov edx, dword [ebx + 0x10]
mov ecx, edi
push edx
push dword [ebx + 0x18]
call fcn.100ac3f0
add esp, 8
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebx + 0x10]
push edi
call esi
mov byte [ebx + 0x1c], 0
mov ecx, dword [0x1012f0e8]
pop edi
pop esi
pop ebx
test ecx, ecx
je 0x1003e55f
push ecx
call fcn.1003e580
mov ecx, dword [0x1012f0c8]
test ecx, ecx
je 0x1003e56f
push ecx
call fcn.1003e580
mov al, 1
mov esp, ebp
pop ebp
ret
call fcn.100ba49f
int3