Function at 0x406d88
Capabilities:
Accept command line arguments

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x568
mov qword [rsp + 0x440], 0xfffffffffffffffe
mov rax, qword [0x004ced40]
mov qword [rsp + 0x550], rax
call qword [sym.imp.KERNEL32.dll_SetFileApisToOEM]
xor ebx, ebx
mov dword [rsp + 0x90], ebx
mov dword [rsp + 0x94], ebx
mov qword [rsp + 0x98], rbx
lea r12d, [rbx + 8]
mov qword [rsp + 0xa0], r12
lea r13, [0x0049d0e0]
mov qword [rsp + 0x88], r13
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rdi, rax
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebx
mov esi, ebx
lea r15d, [rbx + 2]
cmp word [rax], bx
je 0x406e1b
inc esi
add rax, r15
cmp word [rax], bx
jne 0x406e11
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.00401ce0
mov r11, qword [rsp + 0x60]
movzx eax, word [rdi]
mov word [r11], ax
add r11, r15
add rdi, r15
cmp ax, bx
jne 0x406e2c
mov dword [rsp + 0x68], esi
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x60]
call fcn.0040afb4
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
cmp dword [rsp + 0x94], 1
jne 0x406eab
mov rdx, qword [str._n7_Zip__A___64__9.20__Copyright__c__1999_2010_Igor_Pavlov__2010_11_18_n]
lea rcx, [0x004cedb8]
call fcn.0040bed4
mov rdx, qword [0x004cd1b0]
lea rcx, [0x004cedb8]
call fcn.0040bed4
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
jmp 0x407c57
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [rsp + 0x88]
call fcn.0040252c
lea rcx, [rsp + 0x1f0]
call fcn.00406794
nop
lea rcx, [rsp + 0x190]
call fcn.0046d7fc
nop
lea r8, [rsp + 0x1f0]
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x190]
call fcn.0046df9c
cmp byte [rsp + 0x1f0], bl
je 0x406f5e
mov rdx, qword [str._n7_Zip__A___64__9.20__Copyright__c__1999_2010_Igor_Pavlov__2010_11_18_n]
lea rcx, [0x004cedb8]
call fcn.0040bed4
mov rdx, qword [0x004cd1b0]
lea rcx, [0x004cedb8]
call fcn.0040bed4
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
jmp 0x407c57
cmp byte [rsp + 0x1f1], bl
je 0x406f73
call fcn.0048bfec
mov cl, 1
call fcn.0040fc38
lea rax, [0x004cedc8]
lea rdi, [0x004cedb8]
cmp byte [rsp + 0x1f6], bl
cmovne rdi, rax
mov qword [0x004ced70], rdi
cmp byte [rsp + 0x1f7], bl
je 0x406fab
mov rdx, qword [str._n7_Zip__A___64__9.20__Copyright__c__1999_2010_Igor_Pavlov__2010_11_18_n]
mov rcx, rdi
call fcn.0040bed4
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x190]
call fcn.004700a8
mov ecx, 0x30
call fcn.0040bb54
mov rbp, rax
cmp rax, rbx
je 0x406ffb
mov dword [rax + 8], ebx
lea rax, [0x0049de50]
mov qword [rbp], rax
mov dword [rbp + 0x18], ebx
mov dword [rbp + 0x1c], ebx
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], r12
lea rax, [0x0049dad8]
mov qword [rbp + 0x10], rax
jmp 0x406ffe
mov rbp, rbx
mov qword [rsp + 0x448], rbp
cmp rbp, rbx
je 0x407016
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + VariantCopy]
nop
mov rcx, rbp
call fcn.0047a8ac
cmp eax, ebx
je 0x40703e
mov dword [rsp + 0x80], eax
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x80]
call sub.msvcrt.dll__CxxThrowException
int3
lea rcx, [rsp + 0x220]
call fcn.0046d77c
mov sil, al
cmp dword [rbp + 0x1c], ebx
jne 0x407090
cmp al, bl
jne 0x407072
cmp dword [rsp + 0x220], 6
je 0x407072
lea rcx, [rsp + 0x220]
call fcn.0046d79c
cmp al, bl
je 0x407090
mov rax, qword [0x004cd1c8]
mov qword [rsp + 0x70], rax
lea rdx, [0x004cbc40]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll__CxxThrowException
int3
mov dword [rsp + 0xb0], ebx
mov dword [rsp + 0xb4], ebx
mov qword [rsp + 0xb8], rbx
mov qword [rsp + 0xc0], 4
lea rax, [0x0049da38]
mov qword [rsp + 0xa8], rax
lea r8, [rsp + 0xa8]
lea rdx, [rsp + 0x410]
mov rcx, rbp
call fcn.0047a010
cmp al, bl
jne 0x4070fb
mov rax, qword [0x004cd1d0]
mov qword [rsp + 0x70], rax
lea rdx, [0x004cbc40]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll__CxxThrowException
int3
mov eax, dword [rsp + 0x220]
cmp eax, r12d
jne 0x40740d
lea r12, [0x0040bfac]
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov rcx, rax
lea rdx, str.Formats:
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov r15d, ebx
mov dword [rsp + 0x80], ebx
cmp dword [rbp + 0x1c], ebx
jle 0x407397
mov rcx, rbx
mov qword [rsp + 0x70], rbx
mov r13d, 3
mov rax, qword [rbp + 0x20]
mov rsi, qword [rcx + rax]
lea rdx, [0x0049e128]
mov rcx, rdi
call fcn.0040bed4
mov dl, 0x20
mov rcx, rdi
call fcn.0040bef8
mov r11b, byte [rsi]
neg r11b
sbb dl, dl
and dl, 0x23
add dl, 0x20
mov rcx, rdi
call fcn.0040bef8
mov r11b, byte [rsi + 0x60]
neg r11b
sbb dl, dl
and dl, 0x2b
add dl, 0x20
mov rcx, rdi
call fcn.0040bef8
lea rdx, [0x0049e128]
mov rcx, rdi
call fcn.0040bed4
mov r14d, dword [rsi + 0x20]
mov rdx, qword [rsi + 0x18]
mov rcx, rdi
call fcn.0040c068
cmp r14d, 6
jge 0x4071e5
mov eax, 6
sub eax, r14d
mov r14d, eax
mov dl, 0x20
mov rcx, rdi
call fcn.0040bef8
dec r14
jne 0x4071d6
lea rdx, [0x0049e128]
mov rcx, rdi
call fcn.0040bed4
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebx
mov edx, r13d
lea rcx, [rsp + 0x60]
call fcn.00401ce0
nop
cmp dword [rsi + 0x34], ebx
jle 0x40728c
mov r14, rbx
mov r12d, r14d
mov rax, qword [rsi + 0x38]
mov r15, qword [r14 + rax]
mov rdx, r15
lea rcx, [rsp + 0x60]
call fcn.00404e10
cmp dword [r15 + 0x18], ebx
je 0x407262
lea rdx, [0x0049e120]
lea rcx, [rsp + 0x60]
call fcn.00402434
lea rdx, [r15 + 0x10]
lea rcx, [rsp + 0x60]
call fcn.00404e10
mov dx, 0x29
lea rcx, [rsp + 0x60]
call fcn.00404d8c
mov dx, 0x20
lea rcx, [rsp + 0x60]
call fcn.00404d8c
inc r12d
add r14, 8
cmp r12d, dword [rsi + 0x34]
jl 0x40721a
lea r12, [0x0040bfac]
mov r15d, dword [rsp + 0x80]
mov rdx, qword [rsp + 0x60]
mov rcx, rdi
call fcn.0040c068
cmp dword [rsp + 0x68], 0xe
jge 0x4072ba
mov r14d, 0xe
sub r14d, dword [rsp + 0x68]
mov dl, 0x20
mov rcx, rdi
call fcn.0040bef8
dec r14
jne 0x4072ab
lea rdx, [0x0049e128]
mov rcx, rdi
call fcn.0040bed4
mov r14, rbx
cmp qword [rsi + 0x50], rbx
jbe 0x407357
mov rax, qword [rsi + 0x58]
mov r15b, byte [rax + r14]
lea eax, [r15 - 0x21]
cmp al, 0x5e
ja 0x4072f3
mov dl, r15b
mov rcx, rdi
call fcn.0040bef8
jmp 0x40733c
mov r8b, r15b
shr r8b, 4
lea edx, [r8 + 0x30]
lea eax, [r8 + 0x37]
movzx ecx, al
movzx eax, dl
cmp r8b, 0xa
cmovb ecx, eax
mov dl, cl
mov rcx, rdi
call fcn.0040bef8
and r15b, 0xf
lea edx, [r15 + 0x30]
lea eax, [r15 + 0x37]
movzx ecx, al
movzx eax, dl
cmp r15b, 0xa
cmovb ecx, eax
mov dl, cl
mov rcx, rdi
call fcn.0040bef8
mov dl, 0x20
mov rcx, rdi
call fcn.0040bef8
inc r14
cmp r14, qword [rsi + 0x50]
jb 0x4072d6
mov r15d, dword [rsp + 0x80]
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
inc r15d
mov dword [rsp + 0x80], r15d
mov rcx, qword [rsp + 0x70]
add rcx, 8
mov qword [rsp + 0x70], rcx
cmp r15d, dword [rbp + 0x1c]
jl 0x407158
lea r13, [0x0049d0e0]
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov rcx, rax
lea rdx, str.Codecs:
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
jmp 0x407c57
cmp eax, 7
jne 0x40758a
lea rdx, [0x0049cf80]
mov rcx, qword [rsp + 0x430]
call fcn.0040b8c8
cmp eax, ebx
jne 0x4074de
mov r9d, dword [rsp + 0x42c]
mov r8d, dword [rsp + 0x428]
mov edx, dword [rsp + 0x424]
mov rcx, qword [rdi + 8]
call fcn.0040137c
cmp eax, ebx
je 0x408483
cmp eax, 1
jne 0x4074c2
lea rdx, str._nCRC
mov rcx, rdi
call fcn.0040bed4
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
mov ebx, r15d
jmp 0x407c57
mov dword [rsp + 0x540], eax
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
int3
mov r9d, dword [rsp + 0x42c]
mov r8d, dword [rsp + 0x428]
mov edx, dword [rsp + 0x424]
mov rcx, qword [rdi + 8]
call fcn.004015e4
cmp eax, ebx
je 0x408483
cmp eax, 1
jne 0x40756e
lea rdx, [0x0049e0f8]
mov rcx, rdi
call fcn.0040bed4
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
mov ebx, r15d
jmp 0x407c57
mov dword [rsp + 0x540], eax
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
int3
cmp sil, bl
jne 0x407cb8
cmp eax, 6
je 0x408349
lea rcx, [rsp + 0x220]
call fcn.0046d79c
cmp al, bl
je 0x407c6b
cmp byte [rsp + 0x398], bl
je 0x407624
cmp dword [rsp + 0x3a8], ebx
jne 0x407624
mov rsi, qword [str.7zCon.sfx]
mov dword [rsp + 0x3a8], ebx
mov rax, qword [rsp + 0x3a0]
mov word [rax], bx
mov r12d, ebx
cmp word [rsi], bx
je 0x4075f2
mov rax, rsi
inc r12d
add rax, r15
cmp word [rax], bx
jne 0x4075e7
mov edx, r12d
lea rcx, [rsp + 0x3a0]
call fcn.00401ce0
mov r11, qword [rsp + 0x3a0]
movzx eax, word [rsi]
mov word [r11], ax
add r11, r15
add rsi, r15
cmp ax, bx
jne 0x40760a
mov dword [rsp + 0x3a8], r12d
lea rax, [0x0049d1d0]
mov qword [rsp + 0x130], rax
mov byte [rsp + 0x140], bl
mov byte [rsp + 0x141], bl
mov qword [rsp + 0x148], rbx
mov dword [rsp + 0x150], ebx
mov dword [rsp + 0x154], ebx
mov r13d, 3
mov edx, r13d
lea rcx, [rsp + 0x148]
call fcn.00401ce0
nop
mov qword [rsp + 0x138], rdi
cmp byte [rsp + 0x238], bl
je 0x40768d
cmp dword [rsp + 0x248], ebx
je 0x40768d
mov sil, 1
jmp 0x407690
mov sil, bl
mov byte [rsp + 0x140], sil
mov dword [rsp + 0x150], ebx
mov rax, qword [rsp + 0x148]
mov word [rax], bx
mov edx, dword [rsp + 0x248]
lea rcx, [rsp + 0x148]
call fcn.00401ce0
mov r11, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x240]
movzx eax, word [rcx]
mov word [r11], ax
add r11, r15
add rcx, r15
cmp ax, bx
jne 0x4076ce
mov eax, dword [rsp + 0x248]
mov dword [rsp + 0x150], eax
lea rcx, [rsp + 0x450]
call fcn.00405ca4
nop
mov al, byte [rsp + 0x420]
mov byte [rsp + 0x498], al
mov byte [rsp + 0x49a], sil
cmp byte [rsp + 0x238], bl
je 0x40772e
cmp dword [rsp + 0x248], ebx
jne 0x40772e
mov byte [rsp + 0x4b0], 1
jmp 0x407735
mov byte [rsp + 0x4b0], bl
mov dword [rsp + 0x4a8], ebx
mov rax, qword [rsp + 0x4a0]
mov word [rax], bx
mov edx, dword [rsp + 0x248]
lea rcx, [rsp + 0x4a0]
call fcn.00401ce0
mov r11, qword [rsp + 0x4a0]
mov rcx, qword [rsp + 0x240]
movzx eax, word [rcx]
mov word [r11], ax
add r11, r15
add rcx, r15
cmp ax, bx
jne 0x40776b
mov eax, dword [rsp + 0x248]
mov dword [rsp + 0x4a8], eax
mov al, byte [rsp + 0x3c8]
mov byte [rsp + 0x499], al
mov byte [rsp + 0x488], bl
mov byte [rsp + 0x489], bl
lea rcx, [rsp + 0x4b8]
call fcn.0040ba9c
lea rcx, [rsp + 0x4d8]
call fcn.0040ba9c
mov qword [rsp + 0x490], rdi
mov qword [rsp + 0x480], rdi
lea rcx, [rsp + 0x158]
call fcn.00405958
nop
lea r9, [rsp + 0x228]
lea r8, [rsp + 0xa8]
mov rdx, rbp
lea rcx, [rsp + 0x2d0]
call fcn.0047f7ec
cmp al, bl
jne 0x407821
mov rax, qword [0x004cd1d0]
mov qword [rsp + 0x70], rax
lea rdx, [0x004cbc40]
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll__CxxThrowException
int3
lea rax, [rsp + 0x450]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x158]
lea r8, [rsp + 0x2d0]
lea rdx, [rsp + 0x200]
mov rcx, rbp
call fcn.00480fb8
mov r15d, eax
mov r14d, ebx
lea r12, [0x0040bfac]
mov ecx, dword [rsp + 0x504]
cmp ecx, ebx
jle 0x40797c
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
lea rdx, [0x0049e0e8]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
movsxd rsi, dword [rsp + 0x504]
mov r14, rbx
cmp esi, ebx
jle 0x407922
mov rax, qword [rsp + 0x508]
mov rcx, qword [rax + r14*8]
mov rdx, qword [rcx]
mov rcx, rdi
call fcn.0040c068
mov rcx, rax
lea rdx, [0x0049e0e4]
call fcn.0040bed4
mov r11, qword [rsp + 0x528]
mov edx, dword [r11 + r14*4]
lea rcx, [rsp + 0x60]
call fcn.004055b8
nop
mov rdx, qword [rax]
mov rcx, rdi
call fcn.0040c068
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
inc r14
cmp r14, rsi
jl 0x4078b6
mov r13d, 3
lea rdx, str.________________
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
lea rdx, [0x0049e0c0]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov edx, esi
call fcn.0040bf18
mov rcx, rax
lea rdx, [0x0049e0b8]
call fcn.0040bed4
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov r14d, 1
mov ecx, dword [rsp + 0x504]
cmp r15d, ebx
je 0x407a9e
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x7c], ebx
mov edx, r13d
lea rcx, [rsp + 0x70]
call fcn.00401ce0
nop
lea rsi, [0x0049e0b4]
cmp dword [rsp + 0x188], ebx
je 0x4079cf
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x70]
call fcn.00404e10
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402434
cmp dword [rsp + 0x168], ebx
je 0x4079f7
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x70]
call fcn.00404e10
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402434
cmp dword [rsp + 0x178], ebx
je 0x407a1f
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x70]
call fcn.00404e10
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402434
cmp dword [rsp + 0x158], ebx
je 0x407a5f
mov edx, dword [rsp + 0x158]
lea rcx, [rsp + 0x60]
call fcn.004055b8
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.00404e10
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402434
cmp dword [rsp + 0x78], ebx
je 0x407a81
lea rdx, [0x0049e0a8]
mov rcx, rdi
call fcn.0040c068
mov rcx, rax
mov rdx, qword [rsp + 0x70]
call fcn.0040c068
mov dword [rsp + 0x540], r15d
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
nop
movsxd rsi, dword [rsp + 0x4c4]
cmp esi, ebx
jne 0x407ad1
cmp ecx, ebx
jne 0x407bbe
mov rdx, qword [0x004cd1b8]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
jmp 0x407bbe
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
lea rdx, [0x0049e0e8]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
cmp esi, ebx
jle 0x407b6b
mov rax, qword [rsp + 0x4c8]
mov rcx, qword [rax + rbx*8]
mov rdx, qword [rcx]
mov rcx, rdi
call fcn.0040c068
mov rcx, rax
lea rdx, [0x0049e0e4]
call fcn.0040bed4
mov r11, qword [rsp + 0x4e8]
mov edx, dword [r11 + rbx*4]
lea rcx, [rsp + 0x60]
call fcn.004055b8
nop
mov rdx, qword [rax]
mov rcx, rdi
call fcn.0040c068
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
inc rbx
cmp rbx, rsi
jl 0x407b05
lea rdx, str.________________
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
lea rdx, [0x0049e098]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov edx, esi
call fcn.0040bf18
mov rcx, rax
lea rdx, [0x0049e0b8]
call fcn.0040bed4
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov r14d, 1
mov rcx, qword [rsp + 0x180]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x170]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x160]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0x450]
call fcn.00405d94
nop
mov rcx, qword [rsp + 0x148]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
lea rax, [0x0049d0e0]
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
mov ebx, r14d
lea rcx, [rsp + 0x88]
call fcn.0040bb44
mov eax, ebx
jmp 0x4084dd
mov rdx, qword [0x004cd1b0]
mov rcx, rdi
call fcn.0040bed4
mov rdx, qword [0x004cd1c0]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
lea rdx, [0x0040bfac]
call fcn.0040bec0
mov dword [rsp + 0x540], 7
lea rdx, [0x004cbbe8]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
int3
mov ecx, 0x50
call fcn.0040bb54
mov rsi, rax
mov qword [rsp + 0x70], rax
mov r13d, 3
cmp rax, rbx
je 0x407d04
mov dword [rax + 0x10], ebx
lea rax, [0x0049de90]
mov qword [rsi], rax
lea rax, [0x0049de68]
mov qword [rsi + 8], rax
lea rcx, [rsi + 0x18]
mov qword [rcx], rbx
mov dword [rcx + 8], ebx
mov dword [rcx + 0xc], ebx
mov edx, r13d
call fcn.00401ce0
jmp 0x407d07
mov rsi, rbx
mov qword [rsp + 0x70], rsi
cmp rsi, rbx
je 0x407d1b
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
nop
mov qword [rsi + 0x48], rdi
mov al, byte [rsp + 0x238]
mov byte [rsi + 0x14], al
lea r12, [rsi + 0x18]
lea rax, [rsp + 0x240]
cmp rax, r12
je 0x407d7f
mov dword [r12 + 8], ebx
mov rax, qword [r12]
mov word [rax], bx
mov edx, dword [rsp + 0x248]
mov rcx, r12
call fcn.00401ce0
mov r11, qword [r12]
mov rcx, qword [rsp + 0x240]
movzx eax, word [rcx]
mov word [r11], ax
add r11, r15
add rcx, r15
cmp ax, bx
jne 0x407d61
mov eax, dword [rsp + 0x248]
mov dword [r12 + 8], eax
mov qword [rsi + 0x28], rbx
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rbx
mov qword [rsi + 0x40], rbx
lea rax, [0x0049d1d0]
mov qword [rsp + 0xc8], rax
mov byte [rsp + 0xd8], bl
mov byte [rsp + 0xd9], bl
mov qword [rsp + 0xe0], rbx
mov dword [rsp + 0xe8], ebx
mov dword [rsp + 0xec], ebx
mov edx, r13d
lea rcx, [rsp + 0xe0]
call fcn.00401ce0
nop
mov qword [rsp + 0xd0], rdi
mov al, byte [rsp + 0x238]
mov byte [rsp + 0xd8], al
mov dword [rsp + 0xe8], ebx
mov rax, qword [rsp + 0xe0]
mov word [rax], bx
mov edx, dword [rsp + 0x248]
lea rcx, [rsp + 0xe0]
call fcn.00401ce0
mov r11, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x240]
movzx eax, word [rcx]
mov word [r11], ax
add r11, r15
add rcx, r15
cmp ax, bx
jne 0x407e1f
mov eax, dword [rsp + 0x248]
mov dword [rsp + 0xe8], eax
lea rcx, [rsp + 0xf0]
call fcn.00405720
nop
mov al, byte [rsp + 0x1f5]
mov byte [rsp + 0xf0], al
mov al, byte [rsp + 0x1f6]
mov byte [rsp + 0xf1], al
lea rcx, [rsp + 0x220]
call fcn.0046d788
mov dword [rsp + 0xf8], eax
cmp dword [rsp + 0x220], r13d
sete byte [rsp + 0xf3]
mov eax, dword [rsp + 0x268]
mov dword [rsp + 0xfc], eax
mov dword [rsp + 0x108], ebx
mov rax, qword [rsp + 0x100]
mov word [rax], bx
mov edx, dword [rsp + 0x260]
lea rcx, [rsp + 0x100]
call fcn.00401ce0
mov r11, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x258]
movzx eax, word [rcx]
mov word [r11], ax
add r11, r15
add rcx, r15
cmp ax, bx
jne 0x407ed1
mov eax, dword [rsp + 0x260]
mov dword [rsp + 0x108], eax
mov al, byte [rsp + 0x1f8]
mov byte [rsp + 0xf2], al
mov al, byte [rsp + 0x251]
mov byte [rsp + 0xf4], al
lea rcx, [rsp + 0x110]
call fcn.0040ba9c
lea rdx, [rsp + 0x2b0]
lea rcx, [rsp + 0x110]
call fcn.00406bb4
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], ebx
mov edx, r13d
lea rcx, [rsp + 0x60]
call fcn.00401ce0
nop
mov rax, qword [rsp + 0x210]
mov rcx, qword [rax]
add rcx, 0x10
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x290]
lea r8, [rsp + 0x270]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call fcn.004786d8
mov r13d, eax
lea r12, [0x0040bfac]
cmp dword [rsp + 0x68], ebx
je 0x407ff7
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov rcx, rax
lea rdx, [0x0049c9d4]
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x60]
call fcn.0040c068
mov eax, 0x80004005
cmp r13d, ebx
cmove r13d, eax
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov r14, qword [rsi + 0x28]
cmp r14, 1
jbe 0x408031
lea rdx, [0x0049d300]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r14
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
cmp qword [rsi + 0x30], rbx
jne 0x4081f3
cmp qword [rsi + 0x38], rbx
jne 0x4081f3
cmp r13d, ebx
je 0x408067
mov dword [rsp + 0x540], r13d
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
int3
mov rax, qword [rsp + 0x1d8]
cmp rax, rbx
je 0x4080a6
lea rdx, [0x0049e088]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x1d8]
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov rax, qword [rsp + 0x1d8]
cmp qword [rsp + 0x1e0], 1
jne 0x4080b6
cmp rax, rbx
je 0x4080e0
lea rdx, [0x0049e078]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x1e0]
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
lea rdx, [0x0049e068]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x1c8]
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov rcx, rax
lea rdx, [0x0049e058]
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x1d0]
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
cmp byte [rsp + 0x251], bl
je 0x40817c
lea rdx, [rsp + 0x540]
mov ecx, dword [rsp + 0x1e8]
call fcn.0040b314
lea rdx, str.CRC:
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
lea rdx, [rsp + 0x540]
call fcn.0040bed4
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
lea rax, [rsp + 0x110]
mov qword [rsp + 0x540], rax
lea rax, [0x0049db20]
mov qword [rsp + 0x110], rax
lea rcx, [rsp + 0x110]
call fcn.0040ba9c
nop
lea rcx, [rsp + 0x110]
call fcn.0040bb44
nop
mov rcx, qword [rsp + 0x100]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xe0]
call sub.msvcrt.dll_free
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
lea r13, [0x0049d0e0]
jmp 0x408483
cmp qword [rsi + 0x28], 1
jbe 0x408261
mov rdx, r12
mov rcx, rdi
call fcn.0040bec0
mov r14, qword [rsi + 0x30]
cmp r14, rbx
je 0x408233
lea rdx, [0x0049e040]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r14
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
mov r14, qword [rsi + 0x38]
cmp r14, rbx
je 0x408261
lea rdx, [0x0049ca00]
mov rcx, rdi
call fcn.0040bed4
mov rcx, rax
mov rdx, r14
call fcn.0040bf5c
mov rcx, rax
mov rdx, r12
call fcn.0040bec0
cmp r13d, ebx
je 0x408283
mov dword [rsp + 0x540], r13d
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
lea rax, [rsp + 0x110]
mov qword [rsp + 0x540], rax
lea rax, [0x0049db20]
mov qword [rsp + 0x110], rax
lea rcx, [rsp + 0x110]
call fcn.0040ba9c
nop
lea rcx, [rsp + 0x110]
call fcn.0040bb44
nop
mov rcx, qword [rsp + 0x100]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xe0]
call sub.msvcrt.dll_free
nop
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
lea rax, [0x0049d0e0]
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
mov ebx, r15d
jmp 0x407c57
mov qword [rsp + 0x80], rbx
mov rax, qword [rsp + 0x210]
mov rcx, qword [rax]
add rcx, 0x10
lea rax, [rsp + 0x80]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x238]
mov qword [rsp + 0x40], rax
mov al, byte [rsp + 0x250]
mov byte [rsp + 0x38], al
mov al, byte [rsp + 0x1f7]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x290]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x270]
mov r8b, byte [rsp + 0x1f5]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call fcn.00403908
cmp qword [rsp + 0x80], rbx
jbe 0x408463
lea rdx, [0x0040bfac]
lea rcx, [0x004cedb8]
call fcn.0040bec0
mov rcx, rax
lea rdx, [0x0049c9d4]
call fcn.0040bed4
mov rcx, rax
mov rdx, qword [rsp + 0x80]
call fcn.0040bf5c
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
mov ebx, r15d
jmp 0x407c57
cmp eax, ebx
je 0x408483
mov dword [rsp + 0x540], eax
lea rdx, [0x004cbc60]
lea rcx, [rsp + 0x540]
call sub.msvcrt.dll__CxxThrowException
nop
lea rcx, [rsp + 0xa8]
call fcn.0040bb44
nop
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x10]
nop
lea rcx, [rsp + 0x190]
call fcn.0040a76c
nop
lea rcx, [rsp + 0x1f0]
call fcn.00405f0c
nop
mov qword [rsp + 0x88], r13
lea rcx, [rsp + 0x88]
call fcn.0040ba9c
nop
lea rcx, [rsp + 0x88]
call fcn.0040bb44
xor eax, eax
mov rcx, qword [rsp + 0x550]
call fcn.0049b2e0
add rsp, 0x568
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret