Function at 0x404960
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x20
push ebx
mov ebx, eax
movzx eax, word [ebx + 0x3c]
push ebp
movzx eax, ax
push edi
xor edi, edi
lea ebp, [eax + ebx]
mov ecx, 0x10b
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ebp
cmp word [ebp + 0x18], cx
je 0x404990
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov edx, dword [ebp + 0x50]
mov eax, dword [0x42b844]
mov ecx, dword [eax + 0xa4]
push esi
push 0x40
push 0x3000
push edx
push edi
call ecx
mov edx, dword [ebp + 0x50]
mov ecx, dword [0x42b844]
push 0x240
push 0x3000
push edx
mov edx, dword [ecx + 0x370]
mov esi, eax
mov eax, dword [esp + 0x40]
push edi
push eax
mov dword [esp + 0x24], esi
call edx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov dword [ecx], eax
cmp eax, edi
je 0x404b8f
cmp esi, edi
je 0x404b8f
mov edx, dword [ebp + 0x54]
push edx
push ebx
push esi
call fcn.0041c410
xor eax, eax
add esp, 0xc
cmp ax, word [ebp + 6]
jae 0x404a3a
lea esi, [ebp + 0x108]
mov eax, dword [esi - 4]
mov ecx, dword [esi]
mov edx, dword [esi - 8]
add eax, dword [esp + 0x10]
cmp ecx, edx
jb 0x404a1a
mov ecx, edx
push ecx
mov ecx, dword [esi + 4]
add ecx, ebx
push ecx
push eax
call fcn.0041c410
movzx edx, word [ebp + 6]
inc edi
add esp, 0xc
add esi, 0x28
cmp edi, edx
jl 0x404a08
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
sub edi, dword [ebp + 0x34]
je 0x404ac3
mov ecx, dword [ebp + 0xa0]
test ecx, ecx
je 0x404b63
mov eax, dword [ebp + 0xa4]
add ecx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 0
test eax, eax
je 0x404ac3
lea ecx, [ecx]
mov ebx, dword [ecx + 4]
lea eax, [ebx - 8]
shr eax, 1
mov dword [esp + 0x20], ebx
lea edx, [ecx + 8]
je 0x404ab1
mov dword [esp + 0x1c], eax
movzx eax, word [edx]
mov ebx, eax
and ebx, 0xf000
cmp ebx, 0x3000
jne 0x404aa3
and eax, 0xfff
add eax, dword [ecx]
add eax, esi
add dword [eax], edi
add edx, 2
sub dword [esp + 0x1c], 1
jne 0x404a85
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add eax, ebx
add ecx, ebx
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x28]
jne 0x404a70
mov edi, dword [ebp + 0x80]
add edi, esi
mov dword [esp + 0x1c], edi
cmp edi, esi
je 0x404c09
cmp dword [edi + 0xc], 0
je 0x404c09
mov esi, dword [edi + 0xc]
mov ebx, dword [esp + 0x10]
mov edx, dword [0x42b844]
mov eax, dword [edx + 0x34c]
add esi, ebx
push esi
call eax
mov dword [esp + 0x18], eax
test eax, eax
jne 0x404b14
mov ecx, dword [0x42b844]
mov edx, dword [ecx + 0x110]
push esi
call edx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x10]
xor ebp, ebp
add ebx, eax
mov dword [esp + 0x28], ebx
cmp dword [edi + 4], ebp
je 0x404b2a
mov ebx, dword [edi]
add ebx, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x20], esi
cmp dword [ebx], esi
je 0x404bf0
mov eax, ebx
lea ebx, [ebx]
mov eax, dword [eax]
mov edx, dword [0x42b844]
test eax, eax
jns 0x404b99
mov ecx, dword [esp + 0x18]
and eax, 0xffff
push eax
mov eax, dword [edx + 0x80]
push ecx
call eax
mov ebp, eax
jmp 0x404bc8
mov eax, dword [0x42b844]
mov ecx, dword [eax + 0x3c]
push 0x8000
push 0
push esi
call ecx
mov edx, dword [esp + 0x34]
mov eax, dword [0x42b844]
mov ecx, dword [eax + 0x374]
push 0x8000
push 0
push esi
push edx
call ecx
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret
mov ecx, dword [esp + 0x10]
lea edi, [eax + ecx + 2]
mov eax, dword [edx + 0x1e4]
push edi
call eax
test eax, eax
je 0x404bc4
mov ecx, dword [esp + 0x18]
mov edx, dword [0x42b844]
mov eax, dword [edx + 0x80]
push edi
push ecx
call eax
mov ebp, eax
mov edi, dword [esp + 0x1c]
test ebp, ebp
je 0x404bd3
mov ecx, dword [esp + 0x28]
mov dword [esi + ecx], ebp
mov eax, dword [esp + 0x20]
inc eax
lea esi, [eax*4]
cmp dword [esi + ebx], 0
mov dword [esp + 0x20], eax
lea eax, [esi + ebx]
jne 0x404b40
add edi, 0x14
cmp dword [edi + 0xc], 0
mov dword [esp + 0x1c], edi
jne 0x404ae1
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov edx, dword [ebp + 0x50]
mov ebx, dword [esp + 0x14]
mov eax, dword [0x42b844]
mov edi, dword [esp + 0x34]
mov ecx, dword [eax + 0x330]
push 0
push edx
push esi
push ebx
push edi
call ecx
mov edx, dword [ebp + 0x54]
lea eax, [esp + 0x24]
push eax
mov eax, dword [0x42b844]
push 2
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax + 0x1e0]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x34]
push edx
push edi
mov dword [esp + 0x3c], ebx
call ecx
xor edx, edx
xor edi, edi
cmp dx, word [ebp + 6]
jae 0x404d0d
lea esi, [ebp + 0x100]
mov ecx, dword [esi + 0x1c]
xor eax, eax
test ecx, 0x4000000
je 0x404c77
mov eax, 0x200
test ecx, 0x20000000
je 0x404ca5
test ecx, 0x40000000
je 0x404c95
test ecx, ecx
jns 0x404c90
or eax, 0x40
jmp 0x404cc7
or eax, 0x20
jmp 0x404cc7
test ecx, ecx
jns 0x404ca0
or eax, 0x80
jmp 0x404cc7
or eax, 0x10
jmp 0x404cc7
test ecx, 0x40000000
je 0x404cbb
test ecx, ecx
jns 0x404cb6
or eax, 4
jmp 0x404cc7
or eax, 2
jmp 0x404cc7
test ecx, ecx
jns 0x404cc4
or eax, 8
jmp 0x404cc7
or eax, 1
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x20], ecx
add edx, ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x38]
push eax
mov dword [esp + 0x24], edx
lea edx, [esp + 0x28]
push edx
mov edx, dword [0x42b844]
lea eax, [esp + 0x28]
push eax
mov eax, dword [edx + 0x1e0]
push ecx
call eax
movzx ecx, word [ebp + 6]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x404c65
mov esi, dword [esp + 0x10]
mov ebp, dword [ebp + 0x28]
test ebp, ebp
je 0x404d22
mov eax, dword [esp + 0x38]
test eax, eax
je 0x404d22
mov edx, ebx
add ebp, edx
mov dword [eax], ebp
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x20
ret