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

Disassembly:
push 0xffffffffffffffff
push 0x4ec3f8
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 0x499dc6
push esi
call fcn.004216e2
mov eax, dword [esi + 0x2c]
add esp, 4
cmp eax, edi
mov dword [esp + 0x6c], eax
jne 0x499dc6
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.00449130
add esp, 4
cmp eax, edi
mov dword [esp + 0x3c], eax
je 0x499ddf
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 0x499e85
lea ecx, [ecx]
cmp ax, 9
jb 0x499e1c
cmp ax, 0xd
jbe 0x499e7d
cmp ax, 0x20
je 0x499e7d
cmp ax, 0x2d
jne 0x499e30
or edx, 0x8000000
jmp 0x499e71
cmp ax, 0x7c
jne 0x499e3e
or edx, 0x10000000
jmp 0x499e71
cmp ax, 0x2b
jne 0x499e4c
or edx, 0x4000000
jmp 0x499e71
cmp ax, 0x2e
jne 0x499e59
mov byte [esp + 9], 1
jmp 0x499e71
cmp ax, 0x3e
jne 0x499e66
mov byte [esp + 0xa], 2
jmp 0x499e71
cmp ax, 0x2a
jne 0x499e71
mov byte [esp + 8], 1
mov ax, word [esi + 2]
add esi, 2
cmp ax, di
jne 0x499e10
mov dword [esp + 0x68], esi
mov dword [esp + 0xc], edx
mov ax, word [esi]
cmp ax, 9
jb 0x499e94
cmp ax, 0xd
jbe 0x499e9a
cmp ax, 0x20
jne 0x499e9f
add esi, 2
jmp 0x499e85
xor eax, eax
mov ax, word [esi]
cmp ax, di
mov ecx, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x14], ecx
je 0x499ec9
cmp ax, 0x2c
je 0x499ec5
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, di
jne 0x499eb3
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 0x49a0f3
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 0x499f2e
dec edx
jns 0x499ef0
mov ax, word [eax]
cmp ax, 9
jb 0x499f16
cmp ax, 0xd
jbe 0x499f21
cmp ax, 0x20
je 0x499f21
test ax, ax
jne 0x499f2e
mov dword [esp + 0x18], 0x40000000
jmp 0x49a096
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 0x499f7e
dec edx
jns 0x499f40
mov ax, word [eax]
cmp ax, 9
jb 0x499f66
cmp ax, 0xd
jbe 0x499f71
cmp ax, 0x20
je 0x499f71
test ax, ax
jne 0x499f7e
mov dword [esp + 0x18], 0x20000000
jmp 0x49a096
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 0x499fce
dec edx
jns 0x499f90
mov ax, word [eax]
cmp ax, 9
jb 0x499fb6
cmp ax, 0xd
jbe 0x499fc1
cmp ax, 0x20
je 0x499fc1
test ax, ax
jne 0x499fce
mov dword [esp + 0x18], SysReAllocStringLen
jmp 0x49a096
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 0x49a01c
dec edx
jns 0x499fe0
mov ax, word [eax]
cmp ax, 9
jb 0x49a006
cmp ax, 0xd
jbe 0x49a011
cmp ax, 0x20
je 0x49a011
test ax, ax
jne 0x49a01c
mov eax, dword [esp + 0x14]
or eax, 0x2000000
jmp 0x49a092
push 8
push esi
push str._vcenter
call fcn.00444970
add esp, 0xc
test al, al
je 0x49a039
mov eax, dword [esp + 0x14]
or eax, 0x20
jmp 0x49a092
push 5
push esi
push str._ncmd
call fcn.00444970
add esp, 0xc
test al, al
je 0x49a056
mov eax, dword [esp + 0x14]
or eax, 0x40
jmp 0x49a092
push 3
push esi
push 0x4fa17c
call fcn.00444970
add esp, 0xc
test al, al
je 0x49a075
mov eax, dword [esp + 0x14]
or eax, 0x200000
jmp 0x49a092
push 4
push esi
push str._mod
call fcn.00444970
add esp, 0xc
test al, al
je 0x49a096
mov eax, dword [esp + 0x14]
or eax, 0x400000
mov dword [esp + 0x14], eax
test di, di
je 0x49a0c0
jmp 0x49a0a0
cmp di, 9
jb 0x49a0ac
cmp di, 0xd
jbe 0x49a0c0
cmp di, 0x20
je 0x49a0c0
mov di, word [esi + 2]
add esi, 2
test di, di
jne 0x49a0a0
mov edi, edi
mov ax, word [esi]
cmp ax, 9
jb 0x49a0cf
cmp ax, 0xd
jbe 0x49a0d5
cmp ax, 0x20
jne 0x49a0da
add esi, 2
jmp 0x49a0c0
mov di, word [esi]
cmp di, 0x2d
je 0x499ee3
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 0x49a13e
add esi, 2
mov byte [esp + 0x13], 1
mov dword [esp + 0x70], esi
je 0x49a13e
lea esp, [esp]
mov ax, word [esi]
cmp ax, 9
jb 0x49a12f
cmp ax, 0xd
jbe 0x49a135
cmp ax, 0x20
jne 0x49a13a
add esi, 2
jmp 0x49a120
mov dword [esp + 0x70], esi
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4efd50
call ebp
lea esi, [eax + eax + 2]
lea ecx, [esi + 2]
push ecx
call fcn.00449130
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov esi, 0x4efd50
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 0x4efd50
call ebp
lea esi, [eax + eax + 2]
lea eax, [esi + 2]
push eax
call fcn.00449130
mov ecx, esi
mov edx, ecx
mov ebx, eax
shr ecx, 2
mov esi, 0x4efd50
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 0x4efd50
call ebp
lea esi, [eax + eax + 2]
lea eax, [esi + 2]
push eax
call fcn.00449130
mov ecx, esi
mov edx, ecx
shr ecx, 2
mov edi, eax
mov esi, 0x4efd50
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.0044c770
mov ecx, dword [esp + 0x30]
add esp, 0x10
push 1
lea eax, [esp + 0x20]
push eax
call fcn.004166b6
mov ecx, dword [esp + 0x70]
cmp word [ecx], 0x2c
jne 0x49a3fb
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.00459430
push eax
call fcn.0045c3e0
mov ecx, dword [esp + 0x84]
add esp, 0x14
cmp word [ecx], 0x2c
jne 0x49a3fb
push 1
add ecx, 2
push 0x2c
lea edx, [esp + 0x78]
mov dword [esp + 0x78], ecx
push edx
lea ecx, [esp + 0x50]
call fcn.00459430
mov ecx, dword [eax]
cmp word [ecx], 0
mov esi, ecx
je 0x49a2d3
lea esp, [esp]
mov ecx, dword [eax]
cmp word [ecx], 0
je 0x49a2d3
add ecx, 2
mov dword [eax], ecx
cmp word [ecx], 0
jne 0x49a2c0
mov eax, dword [eax]
sub eax, esi
sar eax, 1
lea edi, [eax + 1]
test edi, edi
mov dword [esp + 0x34], eax
jge 0x49a2e9
push esi
call ebp
mov edi, eax
lea eax, [edi + edi + 4]
push ebx
call fcn.00449190
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x18], ebx
je 0x49a307
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 0x49a3ff
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.0044c950
mov ecx, dword [esp + 0x7c]
add esp, 0xc
cmp word [ecx], 0x2c
jne 0x49a3ff
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.00459430
lea ecx, [esp + 0x50]
push ecx
push eax
call fcn.0044c9b0
movsx eax, ax
add esp, 8
cmp eax, 3
jge 0x49a3a1
mov edx, dword [esp + 0x50]
mov dword [esp + 0x58], edx
cmp eax, 4
jge 0x49a3ae
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x70]
cmp word [ecx], 0x2c
jne 0x49a3ff
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.00459430
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.0044ca90
add esp, 0xc
test eax, eax
jle 0x49a3ff
mov edx, dword [esp + 0x34]
mov dword [esp + 0x78], edx
jmp 0x49a3ff
mov ebx, dword [esp + 0x18]
mov al, byte [esp + 0x10]
test al, al
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x49a491
push 2
call fcn.00449130
add esp, 4
test eax, eax
mov dword [esp + 0x70], eax
je 0x49a428
mov word [eax], 0
mov esi, dword [esp + 0x20]
mov al, byte [esi + 0x8e]
test al, al
mov byte [esp + 0x68], 4
jne 0x49a458
test byte [esi + 0xb], 0xf
jne 0x49a458
mov ebp, dword [esp + 0x3c]
push 1
push 0
lea eax, [esp + 0x78]
push eax
push ebp
mov ecx, esi
call fcn.004541d0
jmp 0x49a46d
mov ebp, dword [esp + 0x3c]
push 1
push 0
lea ecx, [esp + 0x78]
push ecx
push ebp
mov ecx, esi
call fcn.00452ca0
mov eax, ebp
test eax, eax
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x3c], ebp
mov byte [esp + 0x68], 3
je 0x49a499
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push edx
call edi
jmp 0x49a499
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov al, byte [esp + 0x11]
test al, al
jne 0x49a4ac
push 0
push ebx
call fcn.00423b0c
add esp, 8
mov al, byte [esp + 0x12]
test al, al
je 0x49a4bc
or dword [esp + 0x14], 0x1000000
lea eax, [esp + 0x18]
push eax
call fcn.0044d100
mov eax, dword [esp + 0x54]
add esp, 4
test eax, eax
mov eax, dword [0x519354]
jge 0x49a4ee
mov ecx, dword [esp + 0x54]
test ecx, ecx
jge 0x49a4fa
mov ecx, dword [esp + 0x58]
test ecx, ecx
jge 0x49a4ee
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jl 0x49a506
mov ecx, dword [esp + 0x54]
test ecx, ecx
jge 0x49a4fa
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x5c]
test ecx, ecx
jge 0x49a506
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x13]
test al, al
je 0x49a512
mov eax, esi
jmp 0x49a51c
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.00498200
test ebp, ebp
je 0x49a56e
mov edx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push 0
push edx
call edi
mov eax, dword [esp + 0x18]
test eax, eax
pop ebp
pop ebx
je 0x49a586
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push 0
push eax
call edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49a59d
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push 0
push ecx
call edi
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x49a5b4
mov edx, dword [0x51d3c8]
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