Function at 0x14013b9d0
Capabilities:
Accept command line arguments

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x468]
sub rsp, 0x540
mov rax, qword [0x140412700]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov r14, rcx
xor esi, esi
mov dword [rsp + 0x30], esi
mov ecx, 0x8001
call qword [sym.imp.KERNEL32.dll_SetSearchPathMode]
lea rcx, [0x14036ac58]
call qword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x48], xmm1
lea r8d, [rsi + 0x18]
lea rdx, str.Thingamahoochie.WinMerge
lea rcx, [rbp - 0x58]
call fcn.140013184
nop
lea rcx, [rbp - 0x58]
call fcn.14011caa8
nop
lea rcx, [rbp - 0x58]
call fcn.14000dd24
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
mov rcx, r14
call fcn.140201a90
lea rcx, [r14 + 0x208]
xor edx, edx
call fcn.140080018
call fcn.140202ec4
call fcn.1401c0264
mov rcx, qword [rax + 0x80]
call fcn.140203568
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
lea r8d, [rsi + 0xc]
lea rdx, str.WinMerge.reg
lea rcx, [rsp + 0x68]
call fcn.140013184
nop
lea rcx, [rsp + 0x40]
call fcn.1400f9274
nop
lea r8, [rsp + 0x68]
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.14017b720
nop
mov rcx, rax
call fcn.1400f9a0c
nop
lea rcx, [rbp - 0x78]
call fcn.14000dd24
nop
lea rcx, [rsp + 0x40]
call fcn.14000dd24
nop
lea rcx, [rsp + 0x68]
call fcn.14000dd24
xor edx, edx
mov r8d, 0x238
lea rcx, [rbp - 0x10]
call fcn.1402bf2e0
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.140143040
nop
lea rcx, [rbp - 0x10]
call fcn.14013aa04
mov rcx, rax
mov r8, qword [r14 + 0x1d0]
mov qword [r14 + 0x1d0], rax
lea r12d, [rsi + 1]
test r8, r8
je 0x14013bb5d
mov rax, qword [r8]
mov edx, r12d
mov rcx, r8
mov rax, qword [rax]
call qword [case.0x14001d845.0]
mov rcx, qword [r14 + 0x1d0]
cmp byte [rbp + 0x24], sil
je 0x14013bb75
mov rax, qword [rcx]
xor edx, edx
mov rax, qword [rax + 0x90]
call qword [case.0x14001d845.0]
mov dword [rsp + 0x20], esi
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, qword [r14 + 0x1d0]
call fcn.140279a50
test rax, rax
je 0x14013bb9f
call fcn.140171f38
mov rcx, qword [r14 + 0x1d0]
call fcn.140170b50
lea rdx, [rbp - 0x10]
mov rcx, r14
call fcn.14013ce68
mov rax, qword [rbp + 0x218]
sub rax, qword [rbp + 0x210]
sar rax, 5
test rax, rax
je 0x14013bc73
or ecx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_AttachConsole]
test eax, eax
je 0x14013bc73
mov r15, qword [rbp + 0x210]
mov r13, qword [rbp + 0x218]
jmp 0x14013bc68
mov r8, r15
lea rdx, str.WinMerge:
lea rcx, [rsp + 0x40]
call fcn.14006e1d0
nop
lea r8, [0x14036aa80]
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.14006e244
nop
lea rcx, [rsp + 0x40]
call fcn.14000dd24
mov ebx, dword [rbp - 0x48]
lea rdi, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova rdi, qword [rbp - 0x58]
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x18]
mov r8d, ebx
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
nop
lea rcx, [rbp - 0x58]
call fcn.14000dd24
add r15, 0x20
cmp r15, r13
jne 0x14013bbf3
call qword [sym.imp.KERNEL32.dll_FreeConsole]
call fcn.14014075c
cmp dword [rbp + 0x198], esi
setg r13b
lea rdx, str.Thingamahoochie
mov rcx, r14
call fcn.140203f30
cmp byte [rbp + 0x18], sil
je 0x14013bc9c
mov ebx, dword [rbp + 0x14]
jmp 0x14013bcb2
call fcn.1401416c4
lea rdx, [0x14044a230]
mov rcx, rax
call fcn.140172b80
mov ebx, eax
call fcn.14013ac48
mov r15, rax
test rax, rax
je 0x14013bccb
or edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test ebx, ebx
je 0x14013bd1a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14013bd1a
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
call fcn.14013ad18
mov rdi, rax
test rax, rax
je 0x14013bd1a
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, r12d
je 0x14013c29b
mov rcx, rdi
call fcn.14013add0
jmp 0x14013c29b
call fcn.1401416c4
lea rdx, [0x14044b2d0]
mov rcx, rax
call fcn.140172b80
mov edx, eax
mov rcx, r14
call fcn.140201c1c
mov rbx, qword [r14 + 0x1a0]
call fcn.1401416c4
lea rdx, [0x1404499d0]
mov rcx, rax
call fcn.140172b80
movzx edx, ax
mov rcx, rbx
call fcn.14011b668
call fcn.140080280
mov rcx, r14
call fcn.14013df20
call fcn.1401416c4
lea rdx, [0x14044b210]
mov rcx, rax
call fcn.140172b98
mov byte [0x1404462aa], al
call fcn.1401416c4
lea rdx, [0x14044b230]
mov rcx, rax
call fcn.140172b98
mov byte [0x1404462ab], al
mov ebx, 0x1f8
mov dword [rbp + 0x230], ebx
xor edx, edx
lea r8d, [rbx - 4]
lea rcx, [rbp + 0x234]
call fcn.1402bf2e0
xor r9d, r9d
lea r8, [rbp + 0x230]
mov edx, ebx
lea ecx, [r9 + 0x29]
call qword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x14013beac
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, rax
call fcn.1401c5d98
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1401d5710
nop
mov edx, 0x5a
mov rcx, qword [rax + 0x10]
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov r8d, 0x48
mov edx, eax
lea ecx, [r8 - 0x3f]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, eax
neg edi
lea rcx, [rsp + 0x40]
call fcn.1401d588c
mov ecx, dword [rbp + 0x310]
call fcn.14028f2d8
mov ebx, eax
mov ecx, edi
call fcn.14028f2d8
mov ecx, dword [rbp + 0x310]
cmp ebx, eax
cmovg ecx, edi
mov dword [rbp + 0x310], ecx
lea rdx, str.Meiryo
lea rcx, [rbp + 0x32c]
call fcn.14028f2a0
test eax, eax
je 0x14013be78
lea rdx, [0x1403a3788]
lea rcx, [rbp + 0x32c]
call fcn.14028f2a0
test eax, eax
jne 0x14013be90
lea r8, str.Meiryo_UI
mov edx, 0x20
lea rcx, [rbp + 0x32c]
call fcn.1402932fc
lea rcx, [rbp + 0x310]
call qword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov rdx, rax
lea rcx, [r14 + 0x1f8]
call fcn.1401d63d0
lea rcx, [r14 + 0x1a8]
call fcn.1400b1218
test al, al
je 0x14013becf
mov rbx, qword [rcx]
call fcn.1401416c4
mov rdx, rbx
mov rcx, rax
call fcn.140174f00
lea rcx, [r14 + 0x1b0]
call fcn.1400b1218
test al, al
je 0x14013bee7
mov rcx, qword [rcx]
call fcn.140013ff0
call fcn.1401416c4
lea rdx, [0x140449cf0]
mov rcx, rax
call fcn.140172b80
mov dword [0x1404136c0], eax
lea rcx, [r14 + 0x1c0]
call fcn.1400b1218
test al, al
je 0x14013bf24
mov rbx, qword [rcx]
call fcn.1401416c4
mov rdx, rax
mov rcx, rbx
call fcn.140121dd4
lea rcx, [r14 + 0x1c8]
call fcn.1400b1218
test al, al
je 0x14013bf47
mov rbx, qword [rcx]
call fcn.1401416c4
mov rdx, rax
mov rcx, rbx
call fcn.140090fc0
call fcn.1401416c4
lea rbx, [0x14044b070]
mov rdx, rbx
mov rcx, rax
call fcn.140172b68
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], rsi
mov qword [rbp - 0x20], rsi
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 7
jbe 0x14013bf7b
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.140038e84
nop
cmp qword [rbp - 0x28], rsi
jne 0x14013c043
call fcn.1401416c4
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x48], xmm1
movdqa xmm0, xmmword [0x1403a9d70]
movdqu xmmword [rbp - 0x48], xmm0
mov word [rbp - 0x58], si
mov dword [rsp + 0x30], r12d
lea r8, [rbp - 0x58]
mov rdx, rbx
mov rcx, rax
call fcn.140172ee4
lea rcx, [rbp - 0x38]
call fcn.14000dd24
mov r8d, 0x20
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x38]
call fcn.1402bec40
movdqa xmm0, xmmword [0x1403a9d70]
movdqu xmmword [rbp - 0x48], xmm0
mov word [rbp - 0x58], si
mov eax, r12d
and eax, 0xfffffffe
mov dword [rsp + 0x30], eax
lea rcx, [rbp - 0x58]
call fcn.14000dd24
call fcn.1401416c4
mov r9, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x58]
lea r8, [rbp - 0x38]
mov rdx, rbx
mov rcx, r9
call qword [case.0x14001d845.0]
lea rcx, [0x140446fe0]
call fcn.14013e36c
lea rdx, [rbp - 0x38]
mov rcx, rax
call fcn.1400fd4b0
lea rcx, [rbp - 0x38]
call fcn.14017aec8
test al, al
jne 0x14013c098
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x14013c098
call fcn.1401416c4
mov rdi, rax
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x58]
lea rcx, [rsp + 0x40]
call fcn.1400f93d8
nop
mov r8, rax
lea rdx, [0x14044b070]
mov rcx, rdi
mov rax, rbx
call qword [case.0x14001d845.0]
nop
lea rcx, [rsp + 0x40]
call fcn.14000dd24
call fcn.1401a49d4
call fcn.1401416c4
lea rdx, [0x140449d70]
mov rcx, rax
call fcn.140172b68
cmp qword [rax + 0x18], 7
jbe 0x14013c0bb
mov rax, qword [rax]
mov rcx, rax
call fcn.1401a4a10
call fcn.1401416c4
lea rdx, [0x14044a250]
mov rcx, rax
call fcn.140172b98
mov byte [r14 + 0x1f4], al
mov rcx, r12
call fcn.1401bcc90
mov rbx, rax
mov qword [rbp - 0x18], rax
test rax, rax
je 0x14013c137
mov ecx, 0x20
call fcn.1401bcc90
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14013c11d
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
mov rcx, rax
call fcn.1401bad34
mov rcx, rax
jmp 0x14013c120
mov rcx, rsi
lea rax, [rcx + 8]
neg rcx
sbb rdx, rdx
and rdx, rax
mov rcx, rbx
call fcn.140182410
jmp 0x14013c13a
mov rax, rsi
mov qword [r14 + 0x1e0], rax
mov edx, dword [rbp - 8]
cmp edx, 0xffffffff
je 0x14013c156
mov rcx, r14
call fcn.14013d40c
jmp 0x14013c291
cmp byte [rbp - 4], sil
je 0x14013c171
mov byte [rbp - 4], sil
lea rdx, [rbp - 0x10]
call fcn.14013cfe0
test al, al
je 0x14013c291
mov edi, 0xaf0
mov ecx, edi
call fcn.1401bcc90
mov rbx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14013c1a4
mov r8d, edi
xor edx, edx
mov rcx, rax
call fcn.1402bf2e0
mov rcx, rbx
call fcn.140128ea8
mov rbx, rax
jmp 0x14013c1a7
mov rbx, rsi
mov rax, qword [rbx]
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea edx, [r9 + 0x64]
mov r8d, 0xcf8000
mov rcx, rbx
mov rax, qword [rax + 0x2d0]
call qword [case.0x14001d845.0]
test eax, eax
jne 0x14013c1f0
test r15, r15
je 0x14013c291
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14013c291
mov qword [r14 + 0x40], rbx
xor edx, edx
mov rcx, rbx
call fcn.140129b10
mov qword [rbx + 0xf0], rax
mov rcx, rax
call fcn.1401e9ca0
test rax, rax
mov r8, rsi
je 0x14013c219
mov r8, qword [rax + 8]
xor r9d, r9d
mov edx, 0x230
mov rcx, qword [rbx + 0x1d8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rax
call fcn.1401e9ca0
mov rax, qword [rbx]
mov edx, dword [rbp - 0x10]
mov rcx, rbx
mov rax, qword [rax + 0x2f8]
call qword [case.0x14001d845.0]
mov r8, rbx
lea rdx, [rbp - 0x10]
mov rcx, r14
call fcn.14013d4a0
test al, al
jne 0x14013c266
test r13b, r13b
cmovne r12d, esi
test r15, r15
je 0x14013c274
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test r12b, r12b
jne 0x14013c28d
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x10]
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_PostMessageW]
movzx esi, r12b
lea rcx, [rbp - 0x38]
call fcn.14000dd24
nop
lea rcx, [rbp - 0x10]
call fcn.14013045c
mov eax, esi
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.1402194b0
lea r11, [rsp + 0x540]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret