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

Disassembly:
push 0xffffffffffffffff
push 0x4ead28
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push 2
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], ebp
call fcn.00449130
add esp, 4
cmp eax, ebp
mov dword [esp + 0x44], eax
je 0x46b89b
mov word [eax], bp
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ebp
cmp dword [esp + 0x74], ebp
mov dword [esp + 0x68], ebp
jne 0x46b8f2
push esi
call fcn.004216e2
mov eax, dword [esi + 0x2c]
add esp, 4
cmp eax, ebp
mov dword [esp + 0x74], eax
jne 0x46b8f2
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x46b8da
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop esi
mov eax, 0x80070057
pop ebp
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
add esp, 0x64
ret 0xc
mov ecx, dword [esp + 0x70]
mov ax, word [ecx]
push edi
xor edi, edi
cmp ax, bp
mov byte [esp + 0xf], 0
je 0x46b95c
cmp ax, 9
jb 0x46b912
cmp ax, 0xd
jbe 0x46b95c
cmp ax, 0x20
je 0x46b95c
cmp ax, 0x2d
jne 0x46b926
or edi, 0x8000000
jmp 0x46b94d
cmp ax, 0x7c
jne 0x46b934
or edi, 0x10000000
jmp 0x46b94d
cmp ax, 0x2b
jne 0x46b942
or edi, 0x4000000
jmp 0x46b94d
cmp ax, 0x2e
jne 0x46b94d
mov byte [esp + 0xf], 1
add ecx, 2
mov dword [esp + 0x74], ecx
mov ax, word [ecx]
cmp ax, bp
jne 0x46b906
xor edi, 0x18000000
mov dword [esp + 0x10], edi
mov ax, word [ecx]
cmp ax, 9
jb 0x46b975
cmp ax, 0xd
jbe 0x46b97b
cmp ax, 0x20
jne 0x46b984
add ecx, 2
mov dword [esp + 0x74], ecx
jmp 0x46b966
xor eax, eax
mov ax, word [ecx]
cmp ax, bp
mov edx, ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], edx
je 0x46b9ae
cmp ax, 0x2c
je 0x46b9aa
mov ax, word [edx + 2]
add edx, 2
cmp ax, bp
jne 0x46b998
mov dword [esp + 0x1c], edx
mov cx, word [edx]
mov word [edx], bp
mov esi, dword [esp + 0x74]
push ebx
mov bx, word [esi]
cmp bx, 0x2d
mov word [esp + 0x38], cx
jne 0x46bb88
jmp 0x46b9d0
mov eax, esi
mov ecx, str._center
mov edx, 6
lea esp, [esp]
movzx edi, word [eax]
movsx ebp, byte [ecx]
or edi, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, edi
jne 0x46ba1e
dec edx
jns 0x46b9e0
mov ax, word [eax]
cmp ax, 9
jb 0x46ba06
cmp ax, 0xd
jbe 0x46ba11
cmp ax, 0x20
je 0x46ba11
test ax, ax
jne 0x46ba1e
mov dword [esp + 0x24], 0x40000000
jmp 0x46bb2d
mov eax, esi
mov ecx, str._right
mov edx, 5
lea ebx, [ebx]
movzx edi, word [eax]
movsx ebp, byte [ecx]
or edi, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, edi
jne 0x46ba6e
dec edx
jns 0x46ba30
mov ax, word [eax]
cmp ax, 9
jb 0x46ba56
cmp ax, 0xd
jbe 0x46ba61
cmp ax, 0x20
je 0x46ba61
test ax, ax
jne 0x46ba6e
mov dword [esp + 0x24], 0x20000000
jmp 0x46bb2d
mov eax, esi
mov ecx, str._vcenter
mov edx, 7
lea ebx, [ebx]
movzx edi, word [eax]
movsx ebp, byte [ecx]
or edi, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, edi
jne 0x46babc
dec edx
jns 0x46ba80
mov ax, word [eax]
cmp ax, 9
jb 0x46baa6
cmp ax, 0xd
jbe 0x46bab1
cmp ax, 0x20
je 0x46bab1
test ax, ax
jne 0x46babc
mov eax, dword [esp + 0x14]
or eax, 0x2000000
jmp 0x46bb29
mov eax, esi
mov ecx, str._rich
mov edx, 4
jmp 0x46bad0
movzx edi, word [eax]
movsx ebp, byte [ecx]
or edi, 0x20
or ebp, 0x20
add eax, 2
inc ecx
cmp ebp, edi
jne 0x46bb0c
dec edx
jns 0x46bad0
mov ax, word [eax]
cmp ax, 9
jb 0x46baf6
cmp ax, 0xd
jbe 0x46bb01
cmp ax, 0x20
je 0x46bb01
test ax, ax
jne 0x46bb0c
mov eax, dword [esp + 0x14]
or eax, 0x800000
jmp 0x46bb29
push 3
push esi
push 0x4fa17c
call fcn.00444970
add esp, 0xc
test al, al
je 0x46bb2d
mov eax, dword [esp + 0x14]
or eax, 0x200000
mov dword [esp + 0x14], eax
test bx, bx
je 0x46bb53
cmp bx, 9
jb 0x46bb3e
cmp bx, 0xd
jbe 0x46bb53
cmp bx, 0x20
je 0x46bb53
add esi, 2
mov dword [esp + 0x78], esi
mov bx, word [esi]
test bx, bx
jne 0x46bb32
mov ax, word [esi]
cmp ax, 9
jb 0x46bb62
cmp ax, 0xd
jbe 0x46bb68
cmp ax, 0x20
jne 0x46bb71
add esi, 2
mov dword [esp + 0x78], esi
jmp 0x46bb53
mov bx, word [esi]
cmp bx, 0x2d
je 0x46b9d0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
xor ebp, ebp
mov ax, word [esp + 0x38]
mov ebx, dword [esp + 0x24]
mov word [edx], ax
or edi, ebx
push 2
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebp
call fcn.00449130
add esp, 4
cmp eax, ebp
mov dword [esp + 0x1c], eax
je 0x46bbb3
mov word [eax], bp
push 2
mov dword [esp + 0x1c], ebp
call fcn.00449130
add esp, 4
cmp eax, ebp
mov dword [esp + 0x18], eax
je 0x46bbcc
mov word [eax], bp
push 2
call fcn.00449130
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x3c], ebp
je 0x46bbe6
mov word [ebp], 0
push 2
call fcn.00449130
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x20], ebx
je 0x46bbff
mov word [ebx], 0
push 0x4efd50
mov dword [esp + 0x48], 0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [eax + eax + 2]
lea ecx, [esi + 2]
push ecx
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
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov eax, SysReAllocStringLen
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x78]
cmp word [eax], 0x2a
mov byte [esp + 0x70], 5
mov byte [esp + 0x80], 0
jne 0x46bcbe
add eax, 2
mov byte [esp + 0x80], 1
mov dword [esp + 0x78], eax
je 0x46bcbe
jmp 0x46bca0
mov cx, word [eax]
cmp cx, 9
jb 0x46bcaf
cmp cx, 0xd
jbe 0x46bcb5
cmp cx, 0x20
jne 0x46bcbe
add eax, 2
mov dword [esp + 0x78], eax
jmp 0x46bca0
mov esi, dword [esp + 0x28]
xor edi, edi
push edi
push 0x2c
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x84]
push edx
mov ecx, esi
call fcn.0043de70
mov eax, dword [esp + 0x78]
cmp word [eax], di
jne 0x46bd8e
mov eax, dword [esp + 0x44]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46bd04
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
cmp ebx, edi
mov dword [esp + 0x44], edi
je 0x46bd1a
mov edx, dword [0x51d3c8]
add ebx, 0xfffffff8
push ebx
push edi
push edx
call esi
cmp ebp, edi
je 0x46bd2b
mov eax, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push edi
push eax
call esi
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x46bd41
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push ecx
call esi
mov eax, dword [esp + 0x1c]
cmp eax, edi
mov dword [esp + 0x18], edi
je 0x46bd5b
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push edi
push edx
call esi
mov eax, dword [esp + 0x4c]
cmp eax, edi
mov dword [esp + 0x1c], edi
je 0x46bd74
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push edi
push eax
call esi
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
add esp, 0x64
ret 0xc
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x44]
push ecx
push 1
push 0x2c
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x68]
call fcn.00459430
push eax
call fcn.0045c3e0
mov eax, dword [esp + 0x8c]
add esp, 0x14
cmp word [eax], 0x2c
jne 0x46bdfd
push 1
mov ebx, eax
push 0x2c
lea ecx, [esp + 0x80]
push ecx
add ebx, 2
lea ecx, [esp + 0x58]
mov dword [esp + 0x84], ebx
call fcn.00459430
push edi
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.0044c900
add esp, 0xc
mov eax, dword [esp + 0x78]
cmp word [eax], di
je 0x46be29
push edi
push 0x2c
lea ecx, [esp + 0x4c]
mov ebp, eax
push ecx
lea edx, [esp + 0x84]
add ebp, 2
push edx
mov ecx, esi
mov dword [esp + 0x88], ebp
call fcn.0043de70
mov ebp, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], edi
push ebp
mov byte [esp + 0x74], 6
call fcn.00422077
mov ebx, dword [esp + 0x48]
mov esi, eax
add esp, 4
cmp esi, edi
mov dword [esp + 0x44], edi
je 0x46be7d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
push edi
call fcn.00449130
mov ecx, edi
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x44], eax
test ebx, ebx
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x46be95
mov eax, dword [0x51d3c8]
add ebx, 0xfffffff8
push ebx
push 0
push eax
call edi
test ebp, ebp
mov byte [esp + 0x70], 5
je 0x46bead
mov ecx, dword [0x51d3c8]
add ebp, 0xfffffff8
push ebp
push 0
push ecx
call edi
mov edx, dword [esp + 0x78]
cmp word [edx], 0
je 0x46bedb
push 1
push 0x2c
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x58]
call fcn.00459430
mov eax, dword [eax]
push eax
call fcn.0044d170
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x78]
cmp word [ecx], 0x2c
jne 0x46bf52
mov edx, ecx
mov esi, 2
add edx, esi
push 1
mov dword [esp + 0x7c], edx
push 0x2c
lea edx, [esp + 0x80]
push edx
lea ecx, [esp + 0x58]
call fcn.00459430
lea ecx, [esp + 0x58]
push ecx
push eax
call fcn.0044c9b0
mov edx, dword [esp + 0x80]
add esp, 8
cmp word [edx], 0x2c
jne 0x46bf52
push 0x2c
lea eax, [esp + 0x24]
push eax
mov ecx, edx
add ecx, esi
push 1
mov dword [esp + 0x84], ecx
push 0x2c
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x60]
call fcn.00459430
push eax
call fcn.0044c770
add esp, 0xc
mov ebx, dword [esp + 0x24]
mov eax, SysReAllocStringLen
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov al, byte [esp + 0x13]
xor ebp, ebp
test al, al
mov esi, ebx
jne 0x46bf8a
mov edx, dword [esp + 0x18]
push ebp
push edx
call fcn.00423b0c
mov eax, dword [esp + 0x1c]
add esp, 8
or eax, 0x1000000
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
cmp word [eax], bp
jne 0x46bfaa
mov eax, dword [esp + 0x44]
cmp word [eax], bp
je 0x46bfaa
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.0044d200
add esp, 8
cmp bx, bp
mov edx, dword [esp + 0x44]
mov word [edx], bp
jle 0x46bfc0
test bl, 7
je 0x46bfc0
or ebx, 8
mov esi, ebx
mov eax, dword [esp + 0x58]
and esi, 0xfffffffe
or esi, 4
cmp eax, ebp
jl 0x46bfdd
cmp dword [esp + 0x5c], ebp
jge 0x46bfdd
mov eax, dword [0x519354]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0x80]
test al, al
je 0x46bfee
mov eax, dword [esp + 0x28]
jmp 0x46bff8
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x13c]
mov ebx, dword [esp + 0x20]
push ebx
movzx ecx, si
or ecx, dword [esp + 0x18]
lea edx, [esp + 0x5c]
push edx
push ecx
lea edx, [esp + 0x50]
push edx
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push ecx
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.00449990
mov eax, dword [esp + 0x44]
cmp eax, ebp
je 0x46c04f
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebp
push eax
call edi
cmp ebx, ebp
mov dword [esp + 0x44], ebp
je 0x46c065
mov ecx, dword [0x51d3c8]
add ebx, 0xfffffff8
push ebx
push ebp
push ecx
call edi
mov eax, dword [esp + 0x3c]
cmp eax, ebp
je 0x46c07b
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push edx
call edi
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x46c090
add eax, 0xfffffff8
push eax
mov eax, dword [0x51d3c8]
push ebp
push eax
call edi
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x18], ebp
je 0x46c0aa
mov ecx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push ecx
call edi
mov eax, dword [esp + 0x4c]
cmp eax, ebp
mov dword [esp + 0x1c], ebp
je 0x46c0c4
mov edx, dword [0x51d3c8]
add eax, 0xfffffff8
push eax
push ebp
push edx
call edi
mov ecx, dword [esp + 0x68]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
mov dword fs:[0], ecx
add esp, 0x64
ret 0xc