Function at 0x100033a0
Capabilities:
Check for hardware breakpoints

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x2dc], esi
mov dword [ebp - 0x2d8], 1
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2e0], edi
test esi, esi
je 0x10003411
lea eax, [ebp - 0x2d0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x10003649
mov ecx, dword [ebp - 0x210]
test ecx, 0x20000
jne 0x10003408
cmp dword [ebp - 0x214], 0x1b
je 0x10003411
and dword [ebp - 0x2d8], 0
jmp 0x1000344f
lea eax, [ebp - 0x2d4]
push eax
push 0x2cc
lea eax, [ebp - 0x2d0]
push eax
push dword [0x1000545c]
push edi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x10003649
cmp dword [ebp - 0x2d4], 0x2cc
jne 0x10003649
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebx]
mov eax, edx
and eax, 0x10001
cmp eax, 0x10001
jne 0x100034c3
mov eax, dword [ebx + 0xb4]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebx + 0xb8]
mov dword [ebp - 0x218], eax
mov eax, dword [ebx + 0xc0]
and eax, 0x53fd7
test ecx, 0x20000
je 0x1000348f
or eax, 0x20000
mov ecx, dword [ebx + 0xbc]
mov dword [ebp - 0x210], eax
test eax, 0x20000
jne 0x100034a5
or ecx, 3
mov eax, dword [ebx + 0xc8]
mov dword [ebp - 0x208], eax
mov eax, dword [ebx + 0xc4]
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x20c], eax
mov ecx, 0x10004
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x10003500
mov eax, dword [ebx + 0x8c]
mov dword [ebp - 0x244], eax
mov eax, dword [ebx + 0x90]
mov dword [ebp - 0x240], eax
mov eax, dword [ebx + 0x94]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebx + 0x98]
mov dword [ebp - 0x238], eax
mov ecx, 0x10002
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x10003555
mov eax, dword [ebx + 0x9c]
mov dword [ebp - 0x234], eax
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x230], eax
mov eax, dword [ebx + 0xa4]
mov dword [ebp - 0x22c], eax
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x224], eax
mov eax, dword [ebx + 0xa8]
mov dword [ebp - 0x228], eax
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x220], eax
mov ecx, 0x10008
mov eax, edx
and eax, ecx
cmp eax, ecx
jne 0x100035bb
mov eax, dword [ebx + 0x1c]
lea esi, [ebx + 0x38]
mov dword [ebp - 0x2b4], eax
lea edi, [ebp - 0x298]
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x2ac], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x2a4], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebx + 0x34]
push 0x14
pop ecx
mov dword [ebp - 0x29c], eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x2dc]
mov edi, dword [ebp - 0x2e0]
mov eax, 0x10010
and edx, eax
cmp edx, eax
jne 0x100035fc
mov eax, dword [ebx + 4]
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c8], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x2c4], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x2bc], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x2b8], eax
cmp dword [ebp - 0x2d8], 0
jne 0x10003617
lea eax, [ebp - 0x2d0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetThreadContext]
test eax, eax
je 0x10003649
lea eax, [ebp - 0x2d4]
mov ebx, 0x2cc
push eax
push ebx
lea eax, [ebp - 0x2d0]
push eax
push dword [0x1000545c]
push edi
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x10003649
cmp dword [ebp - 0x2d4], ebx
jne 0x10003649
xor eax, eax
inc eax
jmp 0x1000364b
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10003c76
leave
ret 0xc