Function at 0x403580
Capabilities:
Inspect section memory permissions

Disassembly:
push ebx
call fcn.0040ae00
push 1
mov ecx, edi
mov ebx, eax
call fcn.00410510
push 0x42
mov ecx, edi
call fcn.00410290
mov ecx, dword [ebx + 0xb4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
push edi
call edx
mov eax, dword [esp + 8]
mov ecx, eax
and ecx, 0x10
xor edx, edx
or ecx, edx
je 0x4035c7
push 2
push 0xa
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov ecx, eax
and ecx, 0x2000
xor edx, edx
or ecx, edx
je 0x4035e3
push 0x15
mov ecx, edi
call fcn.00410290
jmp 0x403877
mov ecx, eax
and ecx, 0x20
xor edx, edx
or ecx, edx
mov ecx, eax
je 0x40364a
and ecx, 0x80
or ecx, edx
mov byte [esp + 8], 1
je 0x403604
mov byte [esp + 8], 3
mov ecx, eax
and ecx, 0x40
xor edx, edx
or ecx, edx
je 0x403614
or byte [esp + 8], 0x10
mov ecx, eax
and ecx, 0x100
xor edx, edx
or ecx, edx
je 0x403627
or byte [esp + 8], 0x20
and eax, 0x1000
xor ecx, ecx
or eax, ecx
je 0x403637
or byte [esp + 8], 0x40
mov eax, dword [esp + 8]
push eax
push 9
mov ecx, edi
call fcn.00410720
jmp 0x403877
and ecx, 0x8000
xor edx, edx
or ecx, edx
je 0x403661
mov ecx, dword [ebx + 0x28]
push ecx
push 0x16
jmp 0x403870
mov ecx, eax
and ecx, 0x20000000
xor edx, edx
or ecx, edx
je 0x40367a
mov edx, dword [ebx + 0x30]
push edx
push 0x3d
jmp 0x403870
mov ecx, eax
and ecx, 0x10000
xor edx, edx
or ecx, edx
je 0x403696
push 0x17
mov ecx, edi
call fcn.00410290
jmp 0x403877
mov ecx, eax
and ecx, 0x80000
xor edx, edx
or ecx, edx
je 0x4036b9
cmp byte [ebx + 0x1f], dl
mov ecx, edi
setne al
push eax
push 0x18
call fcn.00410720
jmp 0x403877
mov ecx, eax
and ecx, 0x100000
xor edx, edx
or ecx, edx
je 0x4036dc
cmp byte [ebx + 0x1e], dl
setne cl
push ecx
push 0x1b
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov ecx, eax
and ecx, 0x40000000
xor edx, edx
or ecx, edx
je 0x4036ff
cmp byte [ebx + 0x20], dl
mov ecx, edi
setne dl
push edx
push 0x40
call fcn.00410720
jmp 0x403877
mov ecx, eax
and ecx, 0x800000
xor edx, edx
or ecx, edx
mov ecx, eax
je 0x4037b3
and ecx, 0x4000000
or ecx, edx
mov byte [esp + 8], dl
je 0x403728
mov byte [esp + 8], 2
jmp 0x403762
mov ecx, eax
and ecx, 0x2000000
xor edx, edx
or ecx, edx
je 0x40373d
mov byte [esp + 8], 1
jmp 0x403762
mov ecx, eax
and ecx, 0x8000000
xor edx, edx
or ecx, edx
je 0x403752
mov byte [esp + 8], 8
jmp 0x403762
and eax, 0x10000000
xor ecx, ecx
or eax, ecx
je 0x403762
mov byte [esp + 8], 4
mov eax, dword [ebx + 0x5c]
add eax, 0xffffffff
cmp eax, 3
ja case.default.0x40376d
jmp dword [eax*4 + 0x403948]
or byte [esp + 8], 0x10
jmp case.default.0x40376d
or byte [esp + 8], 0x30
jmp case.default.0x40376d
or byte [esp + 8], 0x20
jmp case.default.0x40376d
or byte [esp + 8], 0x40
mov eax, dword [esp + 8]
push eax
push 0x32
mov ecx, edi
call fcn.00410720
mov eax, dword [ebx + 0x24]
cmp eax, 0x7fff
jle 0x4037ab
mov eax, 0x7fff
push eax
push 0x34
jmp 0x403870
and ecx, 0x1000000
xor edx, edx
or ecx, edx
je 0x40382c
mov eax, dword [ebx + 0x5c]
add eax, 0xffffffff
cmp eax, 3
mov byte [esp + 8], dl
ja case.default.0x4037ce
jmp dword [eax*4 + 0x403958]
mov byte [esp + 8], 0x10
mov ecx, dword [esp + 8]
push ecx
push 0x33
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov byte [esp + 8], 0x30
mov ecx, dword [esp + 8]
push ecx
push 0x33
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov byte [esp + 8], 0x20
mov ecx, dword [esp + 8]
push ecx
push 0x33
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov byte [esp + 8], 0x40
mov ecx, dword [esp + 8]
push ecx
push 0x33
mov ecx, edi
call fcn.00410720
jmp 0x403877
mov ecx, eax
and ecx, 0x800
xor edx, edx
or ecx, edx
je 0x403845
push 0x38
mov ecx, edi
call fcn.00410290
jmp 0x403877
mov ecx, eax
and ecx, 0x400d
xor edx, edx
or ecx, edx
je 0x40385e
push 0x10
mov ecx, edi
call fcn.00410290
jmp 0x403877
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
je 0x403877
movzx edx, word [ebx + 0x58]
push edx
push 0x41
mov ecx, edi
call fcn.004105b0
mov edx, dword [ebx + 0x10]
test edx, edx
push esi
je 0x40389a
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403884
sub eax, esi
push eax
push edx
push 0x1c
mov ecx, edi
call fcn.00410700
mov edx, dword [ebx + 0x14]
test edx, edx
je 0x4038ce
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4038a6
mov ecx, dword [ebx + 0xb4]
sub eax, esi
push eax
mov eax, dword [ecx]
push edx
mov edx, dword [eax]
call edx
test al, al
setne al
add al, 0x1d
mov ecx, edi
push eax
call fcn.00410700
cmp dword [ebx + 0x18], 0
je 0x403906
mov ecx, dword [ebx + 0xb4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [ebx + 0x18]
mov eax, ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4038f0
sub eax, esi
push eax
push ecx
push 0x49
mov ecx, edi
call fcn.00410700
cmp byte [ebx + 0x1c], 0
pop esi
je 0x40392a
mov ecx, dword [ebx + 0xb4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
push 9
push str.RDB_ADMIN
push 0x4b
mov ecx, edi
call fcn.00410700
cmp byte [ebx + 0x1d], 0
pop ebx
je 0x403947
push 0x49
mov ecx, edi
call fcn.0040f490
test al, al
jne 0x403947
push 0x49
mov ecx, edi
call fcn.00410290
ret