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

Disassembly:
push 0xffffffffffffffff
push 0x4e81a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
mov eax, dword [esp + 0x64]
push esi
push edi
xor edi, edi
cmp eax, edi
mov esi, ecx
mov dword [esp + 0x18], esi
jne 0x49a6a6
push esi
call fcn.0041fca8
mov eax, dword [esi + 0x2c]
add esp, 4
cmp eax, edi
mov dword [esp + 0x6c], eax
jne 0x49a6a6
pop edi
mov eax, 0x80070057
pop esi
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
add esp, 0x5c
ret 0xc
push 2
mov dword [esp + 0x40], edi
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x3c], eax
je 0x49a6bf
mov word [eax], di
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov esi, dword [esp + 0x68]
mov ax, word [esi]
xor edx, edx
cmp ax, di
mov dword [esp + 0x60], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edi
mov byte [esp + 9], dl
mov byte [esp + 8], dl
mov byte [esp + 0xa], dl
je 0x49a765
lea ecx, [ecx]
cmp ax, 9
jb 0x49a6fc
cmp ax, 0xd
jbe 0x49a75d
cmp ax, 0x20
je 0x49a75d
cmp ax, 0x2d
jne 0x49a710
or edx, 0x8000000
jmp 0x49a751
cmp ax, 0x7c
jne 0x49a71e
or edx, 0x10000000
jmp 0x49a751
cmp ax, 0x2b
jne 0x49a72c
or edx, 0x4000000
jmp 0x49a751
cmp ax, 0x2e
jne 0x49a739
mov byte [esp + 9], 1
jmp 0x49a751
cmp ax, 0x3e
jne 0x49a746
mov byte [esp + 0xa], 2
jmp 0x49a751
cmp ax, 0x2a
jne 0x49a751
mov byte [esp + 8], 1
mov ax, word [esi + 2]
add esi, 2
cmp ax, di
jne 0x49a6f0
mov dword [esp + 0x68], esi
mov dword [esp + 0xc], edx
mov ax, word [esi]
cmp ax, 9
jb 0x49a774
cmp ax, 0xd
jbe 0x49a77a
cmp ax, 0x20
jne 0x49a77f
add esi, 2
jmp 0x49a765
xor eax, eax
mov ax, word [esi]
cmp ax, di
mov ecx, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x14], ecx
je 0x49a7a9
cmp ax, 0x2c
je 0x49a7a5
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, di
jne 0x49a793
mov dword [esp + 0x14], ecx
mov ax, word [ecx]
mov word [ecx], di
mov di, word [esi]
cmp di, 0x2d
push ebx
push ebp
mov word [esp + 0x30], ax
jne 0x49a9b3
mov eax, esi
mov ecx, str._center
mov edx, 6
nop
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x49a80e
dec edx
jns 0x49a7d0
mov ax, word [eax]
cmp ax, 9
jb 0x49a7f6
cmp ax, 0xd
jbe 0x49a801
cmp ax, 0x20
je 0x49a801
test ax, ax
jne 0x49a80e
mov dword [esp + 0x18], 0x40000000
jmp 0x49a957
mov eax, esi
mov ecx, str._right
mov edx, 5
lea ebx, [ebx]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x49a85e
dec edx
jns 0x49a820
mov ax, word [eax]
cmp ax, 9
jb 0x49a846
cmp ax, 0xd
jbe 0x49a851
cmp ax, 0x20
je 0x49a851
test ax, ax
jne 0x49a85e
mov dword [esp + 0x18], 0x20000000
jmp 0x49a957
mov eax, esi
mov ecx, str._left
mov edx, 4
lea ebx, [ebx]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x49a8ae
dec edx
jns 0x49a870
mov ax, word [eax]
cmp ax, 9
jb 0x49a896
cmp ax, 0xd
jbe 0x49a8a1
cmp ax, 0x20
je 0x49a8a1
test ax, ax
jne 0x49a8ae
mov dword [esp + 0x18], SysReAllocStringLen
jmp 0x49a957
mov eax, esi
mov ecx, str._trans
mov edx, 5
lea ebx, [ebx]
movzx ebx, word [eax]
movsx ebp, byte [ecx]
or ebx, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, ebx
jne 0x49a8fc
dec edx
jns 0x49a8c0
mov ax, word [eax]
cmp ax, 9
jb 0x49a8e6
cmp ax, 0xd
jbe 0x49a8f1
cmp ax, 0x20
je 0x49a8f1
test ax, ax
jne 0x49a8fc
mov eax, dword [esp + 0x14]
or eax, 0x2000000
jmp 0x49a953
push 8
push esi
push str._vcenter
call fcn.004403f0
add esp, 0xc
test al, al
je 0x49a919
mov eax, dword [esp + 0x14]
or eax, 0x20
jmp 0x49a953
push 5
push esi
push str._ncmd
call fcn.004403f0
add esp, 0xc
test al, al
je 0x49a936
mov eax, dword [esp + 0x14]
or eax, 0x40
jmp 0x49a953
push 3
push esi
push 0x4f5d0c
call fcn.004403f0
add esp, 0xc
test al, al
je 0x49a957
mov eax, dword [esp + 0x14]
or eax, 0x200000
mov dword [esp + 0x14], eax
test di, di
je 0x49a980
lea esp, [esp]
cmp di, 9
jb 0x49a96c
cmp di, 0xd
jbe 0x49a980
cmp di, 0x20
je 0x49a980
mov di, word [esi + 2]
add esi, 2
test di, di
jne 0x49a960
mov edi, edi
mov ax, word [esi]
cmp ax, 9
jb 0x49a98f
cmp ax, 0xd
jbe 0x49a995
cmp ax, 0x20
jne 0x49a99a
add esi, 2
jmp 0x49a980
mov di, word [esi]
cmp di, 0x2d
je 0x49a7c3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x70], esi
mov ax, word [esp + 0x30]
mov word [ecx], ax
or edx, dword [esp + 0x18]
cmp word [esi], 0x2a
mov dword [esp + 0x14], edx
mov byte [esp + 0x13], 0
jne 0x49a9fe
add esi, 2
mov byte [esp + 0x13], 1
mov dword [esp + 0x70], esi
je 0x49a9fe
lea esp, [esp]
mov ax, word [esi]
cmp ax, 9
jb 0x49a9ef
cmp ax, 0xd
jbe 0x49a9f5
cmp ax, 0x20
jne 0x49a9fa
add esi, 2
jmp 0x49a9e0
mov dword [esp + 0x70], esi
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4ebd38
call ebp
lea esi, [eax + eax + 2]
lea ecx, [esi + 2]
push ecx
call fcn.00445f00
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov esi, 0x4ebd38
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add esp, 4
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x1c], eax
push 0x4ebd38
call ebp
lea esi, [eax + eax + 2]
lea eax, [esi + 2]
push eax
call fcn.00445f00
mov ecx, esi
mov edx, ecx
mov ebx, eax
shr ecx, 2
mov esi, 0x4ebd38
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add esp, 4
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x18], ebx
push 0x4ebd38
call ebp
lea esi, [eax + eax + 2]
lea eax, [esi + 2]
push eax
call fcn.00445f00
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov edi, eax
mov esi, 0x4ebd38
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x7c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x44], eax
xor eax, eax
push 0x2c
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov eax, SysReAllocStringLen
push ecx
lea edx, [esp + 0x7c]
push edx
mov byte [esp + 0x78], 3
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x88], 0xffffffff
call fcn.00449370
mov ecx, dword [esp + 0x30]
add esp, 0x10
push 1
lea eax, [esp + 0x20]
push eax
call fcn.004152c8
mov ecx, dword [esp + 0x70]
cmp word [ecx], 0x2c
jne 0x49acbb
mov eax, ecx
add eax, 2
mov dword [esp + 0x70], eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x3c]
push edx
push 1
push 0x2c
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x60]
call fcn.0045a420
push eax
call fcn.0045d3f0
mov ecx, dword [esp + 0x84]
add esp, 0x14
cmp word [ecx], 0x2c
jne 0x49acbb
push 1
add ecx, 2
push 0x2c
lea edx, [esp + 0x78]
mov dword [esp + 0x78], ecx
push edx
lea ecx, [esp + 0x50]
call fcn.0045a420
mov ecx, dword [eax]
cmp word [ecx], 0
mov esi, ecx
je 0x49ab93
lea esp, [esp]
mov ecx, dword [eax]
cmp word [ecx], 0
je 0x49ab93
add ecx, 2
mov dword [eax], ecx
cmp word [ecx], 0
jne 0x49ab80
mov eax, dword [eax]
sub eax, esi
sar eax, 1
lea edi, [eax + 1]
test edi, edi
mov dword [esp + 0x34], eax
jge 0x49aba9
push esi
call ebp
mov edi, eax
lea eax, [edi + edi + 4]
push ebx
call fcn.00445f60
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x49abc7
mov word [ebx + edi*2 + 2], 0
lea eax, [edi + edi]
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x70]
mov word [eax + ebx], 0
mov eax, dword [esp + 0x34]
mov word [ebx + eax*2], 0
cmp word [ecx], 0x2c
jne 0x49acbf
mov eax, ecx
mov esi, 2
add eax, esi
push 0x2c
lea edx, [esp + 0x40]
mov dword [esp + 0x74], eax
push edx
lea eax, [esp + 0x78]
push eax
call fcn.00449550
mov ecx, dword [esp + 0x7c]
add esp, 0xc
cmp word [ecx], 0x2c
jne 0x49acbf
push 1
mov edi, ecx
push 0x2c
lea edx, [esp + 0x78]
add edi, esi
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x7c], edi
call fcn.0045a420
lea ecx, [esp + 0x50]
push ecx
push eax
call fcn.004495b0
movsx eax, ax
add esp, 8
cmp eax, 3
jge 0x49ac61
mov edx, dword [esp + 0x50]
mov dword [esp + 0x58], edx
cmp eax, 4
jge 0x49ac6e
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x70]
cmp word [ecx], 0x2c
jne 0x49acbf
push 1
mov edi, ecx
push 0x2c
lea edx, [esp + 0x78]
add edi, esi
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x7c], edi
call fcn.0045a420
or ecx, 0xffffffff
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
push 0x2c
lea ecx, [esp + 0x38]
push ecx
push eax
call fcn.00449690
add esp, 0xc
test eax, eax
jle 0x49acbf
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], edx
jmp 0x49acbf
mov ebx, dword [esp + 0x18]
mov al, byte [esp + 0x10]
test al, al
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x49ad51
push 2
call fcn.00445f00
add esp, 4
test eax, eax
mov dword [esp + 0x70], eax
je 0x49ace8
mov word [eax], 0
mov esi, dword [esp + 0x20]
mov al, byte [esi + 0x8a]
test al, al
mov byte [esp + 0x68], 4
jne 0x49ad18
test byte [esi + 0xb], 0xf
jne 0x49ad18
mov ebp, dword [esp + 0x3c]
push 1
push 0
lea eax, [esp + 0x78]
push eax
push ebp
mov ecx, esi
call fcn.004531a0
jmp 0x49ad2d
mov ebp, dword [esp + 0x3c]
push 1
push 0
lea ecx, [esp + 0x78]
push ecx
push ebp
mov ecx, esi
call fcn.00451c30
mov eax, ebp
test eax, eax
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x68], 3
je 0x49ad59
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call edi
jmp 0x49ad59
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov al, byte [esp + 0x11]
test al, al
jne 0x49ad6c
push 0
push ebx
call fcn.00422709
add esp, 8
mov al, byte [esp + 0x12]
test al, al
je 0x49ad7c
or dword [esp + 0x14], 0x1000000
lea eax, [esp + 0x18]
push eax
call fcn.00449d00
mov eax, dword [esp + 0x54]
add esp, 4
test eax, eax
mov eax, dword [0x515340]
jge 0x49adae
mov ecx, dword [esp + 0x54]
test ecx, ecx
jge 0x49adba
mov ecx, dword [esp + 0x58]
test ecx, ecx
jge 0x49adae
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jl 0x49adc6
mov ecx, dword [esp + 0x54]
test ecx, ecx
jge 0x49adba
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jge 0x49adc6
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x13]
test al, al
je 0x49add2
mov eax, esi
jmp 0x49addc
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 0x13c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
push edx
push ecx
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
push ecx
push edx
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x9c]
push eax
call fcn.00498060
test ebp, ebp
je 0x49ae2e
mov edx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push 0
push edx
call edi
mov eax, dword [esp + 0x18]
test eax, eax
pop ebp
pop ebx
je 0x49ae46
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push 0
push eax
call edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49ae5d
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push ecx
call edi
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x49ae74
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push 0
push edx
call edi
mov ecx, dword [esp + 0x58]
pop edi
xor eax, eax
pop esi
mov dword fs:[0], ecx
add esp, 0x5c
ret 0xc