Function at 0x2bbf922f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x118], rdx
mov rbp, rcx
test r8d, r8d
jle 0x2bbf926c6
mov rdi, qword [0x2bc041fd0]
mov rbx, r9
xor r12d, r12d
mov esi, r8d
mov r13, r9
jmp 0x2bbf92341
add r12d, 1
add rbx, 8
cmp esi, r12d
je 0x2bbf929d0
mov rax, qword [rdi]
xor edx, edx
mov rcx, qword [rbx]
call qword [rax + 0x1468]
cmp byte [rax], 0x2e
je 0x2bbf92330
mov r8d, esi
mov rax, r13
test r12d, r12d
je 0x2bbf926c6
lea edx, [r8 - 1]
movsxd r11, r12d
mov qword [rsp + 0x50], 0
sub rdx, r12
lea rsi, [rax + r11*8 + 8]
mov dword [rsp + 0x88], 0
and edx, 0xfffffffe
mov dword [rsp + 0x5c], r12d
add rdx, r11
mov qword [rsp + 0x80], rsi
lea rsi, [rax + rdx*8 + 8]
lea edx, [r8 - 2]
mov qword [rsp + 0x70], 0
sub edx, r12d
mov qword [rsp + 0x48], rsi
lea rsi, [rsp + 0xb8]
and edx, 0xfffffffe
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x8c], edx
mov qword [rsp + 0x98], r11
mov dword [rsp + 0x120], r8d
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x78]
mov rcx, rbp
mov rsi, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x118]
lea rsi, [rsi + rax*8]
mov qword [rsp + 0x90], rsi
mov rsi, qword [rsp + 0x128]
mov r8, qword [rsi + rax*8]
call sym.tcl9tk90.dll_TkGetWindowFromObj
test eax, eax
jne 0x2bbf925ca
mov rcx, qword [rsp + 0xb8]
test byte [rcx + 0xf6], 2
jne 0x2bbf92d4e
call sym.GetPacker
mov r15, rax
mov eax, dword [rax + 0x50]
mov edx, eax
and edx, 0xffffffef
cmp qword [r15 + 8], 0
mov dword [r15 + 0x50], edx
je 0x2bbf929e0
mov eax, dword [rsp + 0x5c]
cmp dword [rsp + 0x120], eax
jle 0x2bbf92650
add eax, 1
cmp eax, dword [rsp + 0x120]
jge 0x2bbf92db5
mov ebx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x8c]
lea r13, [rsp + 0xa8]
lea r12, [0x2bc02513d]
mov r14, qword [rsp + 0x80]
lea rsi, [0x2bc0252c0]
lea eax, [rbx + rax + 2]
mov dword [rsp + 0x58], eax
nop dword [rax + rax]
mov rax, qword [rdi]
mov rdx, qword [r14 - 8]
mov r9d, 8
mov rcx, rbp
mov qword [rsp + 0x30], r13
lea r8, str._after
mov dword [rsp + 0x28], 8
mov qword [rsp + 0x20], r12
call qword [rax + 0x990]
test eax, eax
jne 0x2bbf925ca
cmp dword [rsp + 0xa8], 0xa
ja case.default.0x2bbf92507
mov eax, dword [rsp + 0xa8]
movsxd rax, dword [rsi + rax*4]
add rax, rsi
jmp rax
lea rax, [r15 + 0x2c]
lea r9, [r15 + 0x34]
mov qword [rsp + 0x20], rax
mov r8, qword [r14]
mov rdx, qword [rsp + 0xb8]
mov rcx, rbp
call sym.TkParsePadAmount
test eax, eax
jne 0x2bbf925ca
nop dword [rax + rax]
mov rax, qword [rsp + 0x48]
add ebx, 2
cmp r14, rax
je 0x2bbf92650
mov eax, dword [rsp + 0x58]
add r14, 0x10
cmp ebx, eax
jne 0x2bbf924b8
mov rax, qword [rsp + 0x128]
mov r8, qword [rdi]
movsxd rdx, dword [rsp + 0x58]
mov rbx, qword [r8 + 0x768]
mov rsi, qword [r8 + 0x1220]
mov rcx, qword [rax + rdx*8]
xor edx, edx
call qword [r8 + 0x1468]
lea rcx, str.extra_option___s___option_with_no_value__
mov rdx, rax
call rsi
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, str.BAD_PARAMETER
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, str.PACK
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
mov eax, 1
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [r15 + 0x28]
lea r9, [r15 + 0x30]
mov qword [rsp + 0x20], rax
jmp 0x2bbf9251d
mov r8, qword [r14]
mov rdx, qword [rsp + 0xb8]
lea r9, [rsp + 0xa4]
mov rcx, rbp
call sym.tcl9tk90.dll_Tk_GetPixelsFromObj
test eax, eax
jne 0x2bbf92c39
mov eax, dword [rsp + 0xa4]
test eax, eax
js 0x2bbf92c39
add eax, eax
add ebx, 2
mov dword [r15 + 0x3c], eax
mov rax, qword [rsp + 0x48]
cmp r14, rax
jne 0x2bbf92551
nop dword [rax]
mov eax, dword [rsp + 0x88]
test eax, eax
jne 0x2bbf92a50
mov rax, qword [r15 + 8]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x2bbf92bd0
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x48]
test rax, rax
je 0x2bbf92685
mov dword [rax], 1
mov rsi, qword [rsp + 0x60]
mov eax, dword [rsi + 0x50]
test al, 1
jne 0x2bbf926aa
or eax, 1
mov rdx, rsi
lea rcx, [sym.ArrangePacking]
mov dword [rsi + 0x50], eax
mov rax, qword [rdi]
call qword [rax + 0x3b0]
add qword [rsp + 0x50], 1
mov rsi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x50]
cmp rax, rsi
jne 0x2bbf923eb
xor eax, eax
jmp 0x2bbf925cf
mov r8, qword [r14]
mov rdx, qword [rsp + 0xb8]
lea r9, [rsp + 0xa4]
mov rcx, rbp
call sym.tcl9tk90.dll_Tk_GetPixelsFromObj
test eax, eax
jne 0x2bbf92c98
mov eax, dword [rsp + 0xa4]
test eax, eax
js 0x2bbf92c98
add eax, eax
mov dword [r15 + 0x38], eax
jmp case.default.0x2bbf92507
cmp qword [rsp + 0x50], 0
jne case.default.0x2bbf92507
mov r8, qword [r14]
mov rdx, qword [rsp + 0x118]
lea r9, [rsp + 0xb0]
mov rcx, rbp
call sym.tcl9tk90.dll_TkGetWindowFromObj
test eax, eax
jne 0x2bbf925ca
mov rcx, qword [rsp + 0xb0]
call sym.GetPacker
mov dword [rsp + 0x88], 1
mov rdx, qword [rax + 0x18]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rdx
test rdx, rdx
je case.default.0x2bbf92507
nop
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x2bbf92770
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x88], 1
jmp case.default.0x2bbf92507
mov rax, qword [rdi]
xor edx, edx
mov rcx, qword [r14]
call qword [rax + 0x1468]
lea rdx, [0x2bc025168]
mov rcx, rax
mov qword [rsp + 0x68], rax
call sym.strcmp
mov rcx, qword [rsp + 0x68]
test eax, eax
jne 0x2bbf929a8
and dword [r15 + 0x50], 0xfffffff9
jmp case.default.0x2bbf92507
mov rax, qword [rdi]
mov rdx, qword [r14]
mov r8d, 4
mov rcx, rbp
lea r9, [rsp + 0xa4]
call qword [rax + 0x1528]
test eax, eax
jne 0x2bbf925ca
mov eax, dword [r15 + 0x50]
mov edx, dword [rsp + 0xa4]
and eax, 0xfffffff7
mov dword [r15 + 0x50], eax
test edx, edx
je case.default.0x2bbf92507
or eax, 8
mov dword [r15 + 0x50], eax
jmp case.default.0x2bbf92507
cmp qword [rsp + 0x50], 0
jne case.default.0x2bbf92507
mov r8, qword [r14]
mov rdx, qword [rsp + 0x118]
lea r9, [rsp + 0xb0]
mov rcx, rbp
call sym.tcl9tk90.dll_TkGetWindowFromObj
test eax, eax
jne 0x2bbf925ca
mov rcx, qword [rsp + 0xb0]
call sym.GetPacker
mov rcx, qword [rax + 8]
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x2bbf92e11
mov rdx, qword [rcx + 0x18]
cmp rax, rdx
jne 0x2bbf92980
mov dword [rsp + 0x88], 1
mov qword [rsp + 0x70], 0
jmp case.default.0x2bbf92507
mov rdx, qword [r14]
lea r8, [r15 + 0x24]
mov rcx, rbp
call sym.tcl9tk90.dll_Tk_GetAnchorFromObj
test eax, eax
je case.default.0x2bbf92507
jmp 0x2bbf925ca
mov rax, qword [rdi]
mov rdx, qword [r14]
lea rcx, [rsp + 0xac]
mov dword [rsp + 0x28], 9
mov qword [rsp + 0x30], rcx
lea rcx, [0x2bc02522f]
mov r9d, 8
lea r8, [0x2bc025520]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call qword [rax + 0x990]
test eax, eax
jne 0x2bbf925ca
mov eax, dword [rsp + 0xac]
mov dword [r15 + 0x20], eax
jmp case.default.0x2bbf92507
cmp qword [rsp + 0x50], 0
jne case.default.0x2bbf92507
mov r8, qword [r14]
mov rdx, qword [rsp + 0x118]
lea r9, [rsp + 0xb0]
mov rcx, rbp
call sym.tcl9tk90.dll_TkGetWindowFromObj
test eax, eax
jne 0x2bbf925ca
mov rcx, qword [rsp + 0xb0]
call sym.GetPacker
mov qword [rsp + 0x70], rax
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x2bbf92e11
mov dword [rsp + 0x88], 1
jmp case.default.0x2bbf92507
mov rcx, rdx
mov rdx, qword [rdx + 0x10]
cmp rdx, rax
jne 0x2bbf92980
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x88], 1
jmp case.default.0x2bbf92507
movzx eax, byte [rcx]
cmp eax, 0x78
jne 0x2bbf92a18
cmp byte [rcx + 1], 0
jne 0x2bbf92a18
mov eax, dword [r15 + 0x50]
and eax, 0xfffffff9
or eax, 2
mov dword [r15 + 0x50], eax
jmp case.default.0x2bbf92507
mov r8d, esi
mov rax, r13
jmp 0x2bbf92363
movdqu xmm0, xmmword [0x2bc025550]
and eax, 0xffffffe1
mov dword [r15 + 0x20], 3
mov dword [r15 + 0x3c], 0
mov qword [r15 + 0x34], 0
mov dword [r15 + 0x50], eax
movups xmmword [r15 + 0x24], xmm0
jmp 0x2bbf92461
cmp eax, 0x79
je 0x2bbf92b05
lea rdx, str.both
mov qword [rsp + 0x68], rcx
call sym.strcmp
mov rcx, qword [rsp + 0x68]
test eax, eax
jne 0x2bbf92e70
or dword [r15 + 0x50], 6
jmp case.default.0x2bbf92507
cmp qword [rsp + 0x70], r15
je 0x2bbf92c26
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x60]
mov r8, qword [rcx + 0x40]
mov rsi, qword [rax]
cmp r8, rsi
je 0x2bbf92b22
mov rax, rsi
jmp 0x2bbf92a8d
mov rax, qword [rax + 0x40]
cmp r8, rax
je 0x2bbf92b22
test byte [rax + 0xf6], 2
je 0x2bbf92a80
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x90]
xor edx, edx
mov rsi, qword [rsi + 0x58]
mov rbx, qword [rax + 0x768]
mov r12, qword [rax + 0x1220]
mov rcx, qword [rcx]
call qword [rax + 0x1468]
mov r8, rsi
lea rcx, str.cant_pack___s__inside___s_
mov rdx, rax
call r12
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, [0x2bc025250]
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0250f2]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
cmp byte [rcx + 1], 0
jne 0x2bbf92a21
mov eax, dword [r15 + 0x50]
and eax, 0xfffffff9
or eax, 4
mov dword [r15 + 0x50], eax
jmp case.default.0x2bbf92507
cmp rcx, rsi
je 0x2bbf92ec1
mov rax, rsi
test rax, rax
je 0x2bbf92cc0
cmp rcx, rax
je 0x2bbf92b61
test byte [rax + 0xf6], 2
jne 0x2bbf92cc0
mov rdx, qword [rax + 0x188]
test rdx, rdx
je 0x2bbf92dcc
mov rax, rdx
cmp rcx, rax
jne 0x2bbf92b3c
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x90]
xor edx, edx
mov rsi, qword [rsi + 0x58]
mov rbx, qword [rax + 0x768]
mov r12, qword [rax + 0x1220]
mov rcx, qword [rcx]
call qword [rax + 0x1468]
mov r8, rsi
lea rcx, [0x2bc025280]
mov rdx, rax
call r12
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, [0x2bc0252b8]
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0250f2]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
cmp qword [rsp + 0x70], r15
je 0x2bbf92671
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rax + 0x40]
call sym.GetPacker
mov qword [rsp + 0x60], rax
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x2bbf92a5b
mov rdx, rax
nop word cs:[rax + rax]
mov rax, rdx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x2bbf92c10
mov qword [rsp + 0x70], rax
jmp 0x2bbf92a5b
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 8]
mov qword [rsp + 0x60], rax
jmp 0x2bbf92671
mov rax, qword [rdi]
mov rcx, qword [r14]
xor edx, edx
mov rbx, qword [rax + 0x768]
mov rsi, qword [rax + 0x1220]
call qword [rax + 0x1468]
lea rcx, str.bad_ipady_value___s_:_must_be_positive_screen_distance
mov rdx, rax
call rsi
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, str.INT_PAD
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0251ae]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
mov rax, qword [rdi]
mov rcx, qword [r14]
xor edx, edx
mov rbx, qword [rax + 0x768]
mov rsi, qword [rax + 0x1220]
call qword [rax + 0x1468]
lea rcx, str.bad_ipadx_value___s_:_must_be_positive_screen_distance
mov rdx, rax
jmp 0x2bbf92c5f
cmp r8, rsi
je 0x2bbf92ccc
mov qword [rcx + 0x188], rsi
mov rax, qword [r15 + 8]
test rax, rax
je 0x2bbf92d00
mov rsi, qword [rsp + 0x60]
cmp rax, rsi
je 0x2bbf92cf0
mov rcx, qword [r15]
mov rdx, qword [rax]
cmp rdx, qword [rcx + 0x40]
je 0x2bbf92cf0
call sym.tcl9tk90.dll_Tk_UnmaintainGeometry
mov rcx, r15
call sym.Unlink_2
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x70], 0
mov qword [r15 + 8], rax
je 0x2bbf92dfd
mov rsi, qword [rsp + 0x70]
mov rax, qword [rsi + 0x10]
mov qword [r15 + 0x10], rax
mov qword [rsi + 0x10], r15
mov r8, r15
lea rdx, [0x2bc0254e0]
call sym.tcl9tk90.dll_Tk_ManageGeometry
mov rax, qword [rsp + 0x60]
test byte [rax + 0x50], 0x20
je 0x2bbf92dd5
mov qword [rsp + 0x70], r15
jmp 0x2bbf92671
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x90]
xor edx, edx
mov rbx, qword [rax + 0x768]
mov rsi, qword [rax + 0x1220]
mov rcx, qword [rcx]
call qword [rax + 0x1468]
lea rcx, str.cant_pack___s_:_its_a_top_level_window
mov rdx, rax
call rsi
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, [0x2bc0250e9]
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0250f2]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
mov r12d, dword [rsp + 0x5c]
mov rax, qword [rsp + 0x128]
mov dword [rsp + 0x58], r12d
jmp 0x2bbf92569
mov rax, qword [rax + 0x40]
jmp 0x2bbf92b2e
mov rdx, qword [rax]
lea r8, [0x2bc0250a5]
mov rcx, rbp
call sym.TkSetGeometryContainer
test eax, eax
jne 0x2bbf92f28
mov rax, qword [rsp + 0x60]
or dword [rax + 0x50], 0x40
jmp 0x2bbf92d44
mov rsi, rax
mov rax, qword [rax + 0x18]
mov qword [r15 + 0x10], rax
mov qword [rsi + 0x18], r15
jmp 0x2bbf92d26
mov rax, qword [rdi]
mov rcx, qword [r14]
xor edx, edx
mov rbx, qword [rax + 0x768]
mov rsi, qword [rax + 0x1220]
call qword [rax + 0x1468]
lea rcx, str.window___s__isnt_packed
mov rdx, rax
call rsi
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, str.NOT_PACKED
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, str.PACK
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
mov rax, qword [rdi]
mov rdx, rcx
lea rcx, str.bad_fill_style___s_:_must_be_none__x__y__or_both
mov rbx, qword [rax + 0x768]
call qword [rax + 0x1220]
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, str.FILL
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0251ae]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x90]
xor edx, edx
mov rbx, qword [rax + 0x768]
mov rsi, qword [rax + 0x1220]
mov rcx, qword [rcx]
call qword [rax + 0x1468]
lea rcx, str.cant_pack___s__inside_itself
mov rdx, rax
call rsi
mov rcx, rbp
mov rdx, rax
call rbx
mov rax, qword [rdi]
lea r9, str.SELF
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r8, [0x2bc0250f2]
lea rdx, [0x2bc0250fb]
call qword [rax + 0x730]
jmp 0x2bbf925ca
mov rcx, qword [rsp + 0xb8]
xor r8d, r8d
xor edx, edx
call sym.tcl9tk90.dll_Tk_ManageGeometry
mov rcx, r15
call sym.Unlink_2
jmp 0x2bbf925ca