Function at 0x4163b8
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
push eax
push ebx
call fcn.00410a90
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
push ebx
call fcn.00416190
add esp, 8
test eax, eax
jne 0x416e0e
cmp dword [0x48eb14], 0
je 0x4163fa
lea ecx, [ebp - 4]
push ecx
call dword [0x48eb14]
pop ecx
cmp dword [ebx + 4], 0
jle 0x416422
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 8]
xor edx, edx
mov dl, byte [eax]
shl edx, 8
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
or edx, eax
shl edx, cl
or dword [ebx], edx
add dword [ebx + 8], 2
sub dword [ebx + 4], 0x10
push ebx
call fcn.00410ad0
pop ecx
mov edi, eax
test edi, 0x10
je 0x41643a
push ebx
call fcn.00410c58
pop ecx
test edi, 1
je 0x4166a9
cmp dword [ebx + 0x41a0], 0
je 0x41646a
cmp dword [ebx + 0x4198], 3
jne 0x416461
push ebx
call fcn.00415c80
pop ecx
jmp 0x416496
push ebx
call fcn.00415d40
pop ecx
jmp 0x416496
xor eax, eax
xor edx, edx
mov dword [ebx + 0x9c], eax
mov dword [ebx + 0x98], eax
mov dword [ebx + 0xa4], edx
xor eax, eax
mov dword [ebx + 0xa0], edx
mov dword [ebx + 0x64], eax
xor edx, edx
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x6c], edx
mov dword [ebx + 0x68], edx
test edi, 0x20
je 0x4164ab
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xc], eax
mov esi, dword [ebx + 0x1c]
add esi, esi
jmp 0x4164b8
mov eax, dword [ebx + 0x1c]
mov edx, eax
mov esi, eax
shl edx, 3
mov dword [ebp - 0xc], edx
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x10], eax
mov edx, dword [ebx + 0xc]
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
push esi
mov ecx, dword [ebp - 0x14]
push ecx
push 0
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov eax, dword [ebp - 0x14]
add eax, 8
push eax
push 0
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov edx, dword [ebp - 0x14]
add edx, dword [ebp - 0xc]
push edx
push 0
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0xc]
add ecx, 8
push ecx
push 0
push ebx
call fcn.00411f84
add esp, 0x10
cmp dword [ebx + 0x418c], 0
jne 0x41658b
mov eax, dword [ebx + 0x20]
push eax
mov edx, dword [ebp - 0x10]
sar edx, 1
add edx, dword [ebx + 0x10]
push edx
push 1
push ebx
call fcn.00411f84
add esp, 0x10
mov ecx, dword [ebx + 0x20]
push ecx
mov eax, dword [ebp - 0x10]
sar eax, 1
add eax, dword [ebx + 0x14]
push eax
push 2
push ebx
call fcn.00411f84
add esp, 0x10
cmp dword [ebx + 0x4190], 4
jne 0x416b01
cmp dword [ebx + 4], 0
jle 0x416581
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
xor eax, eax
mov al, byte [edx]
shl eax, 8
mov edx, dword [ebx + 8]
movzx edx, byte [edx + 1]
or eax, edx
shl eax, cl
or dword [ebx], eax
add dword [ebx + 8], 2
sub dword [ebx + 4], 0x10
shl dword [ebx], 1
inc dword [ebx + 4]
jmp 0x416b01
cmp dword [ebx + 0x418c], 1
jne 0x4165fa
mov eax, dword [ebp - 0x10]
sar eax, 1
add eax, dword [ebx + 0x10]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x10]
sar ecx, 1
add ecx, dword [ebx + 0x14]
sar esi, 1
mov dword [ebp - 0x1c], ecx
sar dword [ebp - 0xc], 1
push esi
mov eax, dword [ebp - 0x18]
push eax
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov edx, dword [ebp - 0x1c]
push edx
push 2
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0xc]
push ecx
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0xc]
push eax
push 2
push ebx
call fcn.00411f84
add esp, 0x10
jmp 0x416b01
mov edx, dword [ebx + 0x10]
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebx + 0x14]
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
push esi
mov eax, dword [ebp - 0x20]
push eax
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov edx, dword [ebp - 0x24]
push edx
push 2
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0xc]
push ecx
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0xc]
push eax
push 2
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov edx, dword [ebp - 0x20]
add edx, 8
push edx
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov ecx, dword [ebp - 0x24]
add ecx, 8
push ecx
push 2
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0xc]
add eax, 8
push eax
push 1
push ebx
call fcn.00411f84
add esp, 0x10
push esi
mov edx, dword [ebp - 0x24]
add edx, dword [ebp - 0xc]
add edx, 8
push edx
push 2
push ebx
call fcn.00411f84
add esp, 0x10
jmp 0x416b01
mov eax, edi
sar eax, 6
test eax, eax
jl 0x416e0e
cmp eax, 5
jge 0x416e0e
mov esi, dword [ebx + eax*4 + 0xb0]
mov eax, edi
and eax, 8
test eax, eax
je 0x4166de
push 0x49b498
lea edx, [ebx + 0x78]
push edx
push ebx
call esi
add esp, 0xc
test edi, 4
je 0x416706
mov ecx, edi
and ecx, 8
test ecx, ecx
je 0x4166f6
mov eax, 0x49b4b8
jmp 0x4166fb
mov eax, 0x49b498
push eax
lea edx, [ebx + 0x40]
push edx
push ebx
call esi
add esp, 0xc
test edi, 2
je 0x416ae8
test edi, 0x20
je 0x41672a
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebx + 0x1c]
add eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x416738
mov eax, dword [ebx + 0x1c]
mov edx, eax
shl edx, 3
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], eax
push ebx
call fcn.00410de0
pop ecx
mov esi, eax
cmp dword [ebx + 0x418c], 0
jne 0x41681e
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x30], eax
mov edx, dword [ebx + 0xc]
add edx, dword [ebp - 0x30]
test esi, 1
mov dword [ebp - 0x34], edx
je 0x416778
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x34]
push eax
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 2
je 0x416796
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x34]
add ecx, 8
push ecx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 4
je 0x4167b4
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x28]
push edx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 8
je 0x4167d5
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x28]
add eax, 8
push eax
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x10
je 0x4167f5
mov edx, dword [ebx + 0x20]
push edx
mov ecx, dword [ebp - 0x30]
sar ecx, 1
add ecx, dword [ebx + 0x10]
push ecx
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x20
je 0x416ae8
mov eax, dword [ebx + 0x20]
push eax
mov edx, dword [ebp - 0x30]
sar edx, 1
add edx, dword [ebx + 0x14]
push edx
push 2
push ebx
call fcn.00412074
add esp, 0x10
jmp 0x416ae8
cmp dword [ebx + 0x418c], 1
jne 0x416956
mov ecx, dword [ebx]
shl dword [ebx], 2
add dword [ebx + 4], 2
mov eax, dword [ebx + 0x18]
and ecx, 0xc0000000
mov dword [ebp - 0x38], eax
or esi, ecx
mov edx, dword [ebx + 0xc]
add edx, dword [ebp - 0x38]
test esi, 1
mov dword [ebp - 0x3c], edx
je 0x416866
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x3c]
push eax
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 2
je 0x416884
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x3c]
add ecx, 8
push ecx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 4
je 0x4168a2
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x28]
push edx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 8
je 0x4168c3
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x28]
add eax, 8
push eax
push 0
push ebx
call fcn.00412074
add esp, 0x10
sar dword [ebp - 0x2c], 1
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x38]
sar edx, 1
test esi, 0x10
mov dword [ebp - 0x28], edx
je 0x4168f1
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x38]
sar eax, 1
add eax, dword [ebx + 0x10]
push eax
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x20
je 0x416911
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x38]
sar ecx, 1
add ecx, dword [ebx + 0x14]
push ecx
push 2
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x80000000
je 0x41692f
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebx + 0x10]
add edx, dword [ebp - 0x28]
push edx
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x40000000
je 0x416ae8
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebx + 0x14]
add eax, dword [ebp - 0x28]
push eax
push 2
push ebx
call fcn.00412074
add esp, 0x10
jmp 0x416ae8
mov edx, dword [ebx]
shl dword [ebx], 6
add dword [ebx + 4], 6
and edx, 0xfc000000
mov eax, dword [ebx + 0x18]
or esi, edx
mov edx, dword [ebx + 0xc]
add edx, eax
mov dword [ebp - 0x40], edx
mov ecx, dword [ebx + 0x10]
add ecx, eax
mov dword [ebp - 0x44], ecx
add eax, dword [ebx + 0x14]
test esi, 1
mov dword [ebp - 0x48], eax
je 0x41699b
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x40]
push edx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 2
je 0x4169b9
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x40]
add eax, 8
push eax
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 4
je 0x4169d7
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x28]
push ecx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 8
je 0x4169f8
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x28]
add edx, 8
push edx
push 0
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x10
je 0x416a13
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x44]
push eax
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x20
je 0x416a2e
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x48]
push ecx
push 2
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x80000000
je 0x416a4c
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x28]
push edx
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x40000000
je 0x416a6a
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x28]
push eax
push 2
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x20000000
je 0x416a88
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x44]
add ecx, 8
push ecx
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x10000000
je 0x416aa6
mov eax, dword [ebp - 0x2c]
push eax
mov edx, dword [ebp - 0x48]
add edx, 8
push edx
push 2
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x8000000
je 0x416ac7
mov ecx, dword [ebp - 0x2c]
push ecx
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x28]
add eax, 8
push eax
push 1
push ebx
call fcn.00412074
add esp, 0x10
test esi, 0x4000000
je 0x416ae8
mov edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x28]
add ecx, 8
push ecx
push 2
push ebx
call fcn.00412074
add esp, 0x10
mov ax, 0x4000
mov word [ebx + 0xc8], ax
mov word [ebx + 0xc6], ax
mov word [ebx + 0xc4], ax
add dword [ebx + 0x18], 0x10
mov edx, dword [ebx + 0x18]
cmp edx, dword [ebx + 0x4180]
jne 0x416b83
cmp dword [ebx + 0x158], 0
je 0x416b3d
mov ecx, dword [ebx + 0x164]
lea eax, [ebx + 0xc]
push ecx
push eax
mov edx, dword [ebx + 0x15c]
push edx
call dword [ebx + 0x158]
add esp, 0xc
cmp dword [ebx + 0x4190], 3
je 0x416b4f
mov ecx, dword [ebx + 0x24]
add dword [ebx + 0xc], ecx
mov eax, dword [ebx + 0x28]
add dword [ebx + 0x10], eax
mov edx, dword [ebx + 0x28]
add dword [ebx + 0x14], edx
add dword [ebx + 0x164], 0x10
mov ecx, dword [ebx + 0x164]
cmp ecx, dword [ebx + 0x3c]
jbe 0x416b7e
cmp dword [0x48eb18], 0
je 0x416e0e
lea eax, [ebp - 4]
push eax
call dword [0x48eb18]
pop ecx
jmp 0x416e0e
xor edx, edx
mov dword [ebx + 0x18], edx
cmp dword [ebx + 4], 0
jle 0x416bab
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 8]
xor edx, edx
mov dl, byte [eax]
shl edx, 8
mov eax, dword [ebx + 8]
movzx eax, byte [eax + 1]
or edx, eax
shl edx, cl
or dword [ebx], edx
add dword [ebx + 8], 2
sub dword [ebx + 4], 0x10
xor edx, edx
mov dword [ebp - 8], edx
mov eax, dword [ebx]
cmp eax, 0x10000000
jb 0x416bcb
mov esi, eax
shr esi, 0x1b
sub esi, 2
add esi, esi
add esi, 0x48f6ca
jmp 0x416c41
cmp eax, 0x3000000
jb 0x416be4
mov esi, eax
shr esi, 0x15
sub esi, 0x18
add esi, esi
add esi, 0x48f706
jmp 0x416c41
shr eax, 0x15
sub eax, 8
je 0x416bf3
sub eax, 7
je 0x416bf7
jmp 0x416c24
add dword [ebp - 8], 0x21
shl dword [ebx], 0xb
add dword [ebx + 4], 0xb
mov edx, dword [ebx + 4]
test edx, edx
jle 0x416bb0
mov eax, dword [ebx + 8]
movzx esi, byte [eax]
shl esi, 8
movzx eax, byte [eax + 1]
or esi, eax
mov ecx, edx
shl esi, cl
or dword [ebx], esi
add dword [ebx + 8], 2
sub dword [ebx + 4], 0x10
jmp 0x416bb0
cmp dword [0x48eb18], 0
je 0x416e0e
lea edx, [ebp - 4]
push edx
call dword [0x48eb18]
pop ecx
jmp 0x416e0e
mov cl, byte [esi + 1]
xor eax, eax
shl dword [ebx], cl
mov al, byte [esi + 1]
xor edx, edx
add dword [ebx + 4], eax
mov dl, byte [esi]
add dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x4163fa
mov ax, 0x4000
mov word [ebx + 0xc8], ax
mov word [ebx + 0xc6], ax
mov word [ebx + 0xc4], ax
cmp dword [ebx + 0x4190], 2
jne 0x416d3d
push 0x49b498
lea edx, [ebx + 0x78]
push edx
push ebx
call dword [ebx + 0xb0]
add esp, 0xc
jmp 0x416cad
add dword [ebx + 0x18], 0x10
mov eax, dword [ebx + 0x18]
cmp eax, dword [ebx + 0x4180]
jne 0x416d2f
cmp dword [ebx + 0x158], 0
je 0x416ce9
mov edx, dword [ebx + 0x164]
lea ecx, [ebx + 0xc]
push edx
push ecx
mov eax, dword [ebx + 0x15c]
push eax
call dword [ebx + 0x158]
add esp, 0xc
cmp dword [ebx + 0x4190], 3
je 0x416cfb
mov edx, dword [ebx + 0x24]
add dword [ebx + 0xc], edx
mov ecx, dword [ebx + 0x28]
add dword [ebx + 0x10], ecx
mov eax, dword [ebx + 0x28]
add dword [ebx + 0x14], eax
add dword [ebx + 0x164], 0x10
mov edx, dword [ebx + 0x164]
cmp edx, dword [ebx + 0x3c]
jbe 0x416d2a
cmp dword [0x48eb18], 0
je 0x416e0e
lea ecx, [ebp - 4]
push ecx
call dword [0x48eb18]
pop ecx
jmp 0x416e0e
xor eax, eax
mov dword [ebx + 0x18], eax
dec dword [ebp - 8]
jne 0x416c85
jmp 0x4163fa
mov edx, edi
and edx, 8
test edx, edx
je 0x416d59
push 0x49b498
lea ecx, [ebx + 0x78]
push ecx
push ebx
call dword [ebx + 0xc0]
add esp, 0xc
test edi, 4
je 0x416d85
mov eax, edi
and eax, 8
test eax, eax
je 0x416d71
mov edx, 0x49b4b8
jmp 0x416d76
mov edx, 0x49b498
push edx
lea eax, [ebx + 0x40]
push eax
push ebx
call dword [ebx + 0xc0]
add esp, 0xc
add dword [ebx + 0x18], 0x10
mov ecx, dword [ebx + 0x18]
cmp ecx, dword [ebx + 0x4180]
jne 0x416e00
cmp dword [ebx + 0x158], 0
je 0x416dc1
mov eax, dword [ebx + 0x164]
lea edx, [ebx + 0xc]
push eax
push edx
mov ecx, dword [ebx + 0x15c]
push ecx
call dword [ebx + 0x158]
add esp, 0xc
cmp dword [ebx + 0x4190], 3
je 0x416dd3
mov eax, dword [ebx + 0x24]
add dword [ebx + 0xc], eax
mov edx, dword [ebx + 0x28]
add dword [ebx + 0x10], edx
mov ecx, dword [ebx + 0x28]
add dword [ebx + 0x14], ecx
add dword [ebx + 0x164], 0x10
mov eax, dword [ebx + 0x164]
cmp eax, dword [ebx + 0x3c]
jbe 0x416dfb
cmp dword [0x48eb18], 0
je 0x416e0e
lea edx, [ebp - 4]
push edx
call dword [0x48eb18]
pop ecx
jmp 0x416e0e
xor ecx, ecx
mov dword [ebx + 0x18], ecx
dec dword [ebp - 8]
jne 0x416d3d
jmp 0x4163fa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret