Function at 0x4049e4
Capabilities:
Check for software breakpoints
Enumerate pe sections
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
and dword [ebp - 0x10], 0
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0xc], esi
mov edx, dword [esi + 0x1a0]
movzx eax, word [edx + 0x14]
lea ecx, [edx + 0x18]
add ecx, eax
movzx eax, word [edx + 6]
imul eax, eax, 0x28
mov ebx, ecx
mov dword [ebp - 0x2c], ecx
add eax, ecx
cmp ecx, eax
jmp 0x404c0e
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x404a1f
sub ecx, edx
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x10]
mov dword [eax], ebx
call fcn.004014f5
cmp dword [ebp - 0x10], 0xc57f875c
je 0x404bf9
mov eax, dword [ebx + 0x10]
mov dword [ebp - 8], eax
test eax, eax
jne 0x404a8d
test byte [ebx + 0x24], 0x20
je 0x404a5e
mov eax, dword [esi + 0x1a0]
mov eax, dword [eax + 0x1c]
jmp 0x404a82
test byte [ebx + 0x24], 0x40
je 0x404a6f
mov eax, dword [esi + 0x1a0]
mov eax, dword [eax + 0x20]
jmp 0x404a82
test byte [ebx + 0x24], 0x80
je 0x404bf9
mov eax, dword [esi + 0x1a0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 8], eax
test eax, eax
je 0x404bf9
mov edi, dword [esi + 0x198]
add edi, dword [ebx + 0xc]
test dword [ebx + 0x24], 0x2000000
mov dword [ebp - 0x28], edi
je 0x404ab2
push ecx
push eax
push edi
lea ecx, [esi + 4]
call fcn.00403161
jmp 0x404bf9
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebx + 0x14]
add esi, dword [ecx + 0x194]
cmp dword [ebp - 0x10], 0x5fd2116
mov dword [ebp - 0x24], esi
jne 0x404b33
and dword [ebp - 0x14], 0
test eax, eax
je 0x404b33
mov edi, dword [ebp - 0x14]
mov edx, esi
mov dword [ebp - 0x18], edx
cmp byte [edx], 0xcc
mov ecx, edx
jne 0x404ae7
inc ecx
cmp byte [ecx], 0xcc
je 0x404ae1
sub ecx, edx
cmp ecx, 1
jle 0x404b1e
lea ebx, [esi + 1]
add ebx, edi
mov dword [ebp - 0x20], ebx
je 0x404b1e
xor ebx, ebx
dec ecx
mov dword [ebp - 0x1c], ecx
je 0x404b1e
mov edi, dword [ebp - 0x20]
mov esi, ecx
call fcn.00401af7
mov byte [ebx + edi], al
inc ebx
cmp ebx, esi
jb 0x404b05
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
inc edi
inc edx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edx
cmp edi, eax
jb 0x404ada
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
add ecx, 4
push ecx
push eax
push esi
push edi
mov dword [ebp - 0x28], ecx
call fcn.004031c6
test al, al
je 0x404c31
mov eax, dword [ebx + 0x24]
mov ebx, eax
and ebx, 0x80000000
test eax, 0x20000000
je 0x404b7b
test eax, 0x40000000
je 0x404b6f
neg ebx
sbb ebx, ebx
and ebx, 0x20
add ebx, 0x20
jmp 0x404b96
neg ebx
sbb ebx, ebx
and ebx, 0x70
add ebx, 0x10
jmp 0x404b96
test eax, 0x40000000
je 0x404b8e
neg ebx
sbb ebx, ebx
and ebx, 2
add ebx, 2
jmp 0x404b96
neg ebx
sbb ebx, ebx
and ebx, 7
inc ebx
test eax, 0x4000000
je 0x404ba3
or ebx, 0x200
push ebx
push esi
mov esi, dword [ebp - 8]
push edi
push esi
push eax
push dword [ebp - 4]
push str._n_tscn__Name___s_n_tscn__Characteristics__0x_x_n_tsize__0x_x_n_tremote__0x_x_n_tstart__0x_x_n_tprotect__0x_x_n
push 0x406210
call fcn.004023c6
mov eax, dword [ebp - 0x28]
add esp, 0x20
cmp dword [eax + 4], 0
je 0x404bf3
xor ecx, ecx
cmp dword [eax], ecx
je 0x404bf3
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x30]
push ecx
push ebx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x24], edi
push ecx
push esi
lea ecx, [ebp - 0x24]
push ecx
push dword [eax + 4]
mov eax, dword [0x405034]
mov ecx, 0x405034
call dword [eax + 0x50]
mov ebx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov eax, dword [esi + 0x1a0]
add ebx, 0x28
movzx eax, word [eax + 6]
imul eax, eax, 0x28
add eax, dword [ebp - 0x2c]
cmp ebx, eax
mov dword [ebp - 4], ebx
jb 0x404a1a
push 0x405038
push 0x406210
call fcn.004023c6
pop ecx
pop ecx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push str.failed_to_map__s_n
push 0x406210
call fcn.004023c6
add esp, 0xc
xor eax, eax
jmp 0x404c2a