Function at 0x40f660
Capabilities:
Check mutex on windows
Read file via mapping
Set current directory

Disassembly:
mov rax, rsp
sub rsp, 0x608
mov qword [rsp + 0x2c0], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
mov qword [rax - 8], rsi
mov qword [rax - 0x10], rdi
mov qword [rax - 0x18], r12
mov qword [rax - 0x20], r13
mov qword [rax - 0x28], r14
mov qword [rax - 0x30], r15
mov rax, qword [0x0046d048]
mov qword [rsp + 0x5c0], rax
mov qword [rsp + 0x130], rdx
mov dword [rsp + 0x80], ecx
lea rdx, [0x00455c5c]
xor ecx, ecx
call fcn.0042c980
mov edx, 1
lea rcx, [rsp + 0x2e0]
call fcn.0041e8e0
nop
lea rcx, [rsp + 0x200]
call fcn.00408a40
nop
lea r15, [section..SHMMESS]
mov qword [rsp + 0x78], r15
xor r12d, r12d
mov r14, r12
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x2e0]
call fcn.0040bdf0
nop
lea rdi, [0x004555b0]
lea rbp, [0x00455570]
mov esi, dword [rsp + 0xd8]
test esi, esi
je 0x40f857
mov ecx, r12d
mov rax, r12
test esi, esi
jle 0x40f754
mov rdx, qword [rsp + 0xd0]
cmp byte [rdx + rax], 0x5c
jne 0x40f74b
mov byte [rdx + rax], 0x2e
mov esi, dword [rsp + 0xd8]
inc ecx
inc rax
cmp ecx, esi
jl 0x40f732
lea rbp, str..j2e.mapping
mov qword [rsp + 0x268], rbp
mov qword [rsp + 0x260], rdi
mov ebx, r12d
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40f770
mov dword [rsp + 0x270], ebx
lea edx, [rbx + rsi]
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xc8]
call qword [rax + 8]
cmp esi, esi
jge 0x40f7c7
movsxd rax, esi
mov rcx, qword [rsp + 0xd0]
lea rdx, [rax + rcx]
movsxd rdi, ebx
add rdi, rax
add rcx, rdi
mov eax, esi
sub eax, esi
movsxd r8, eax
call fcn.00429770
lea rdi, [0x004555b0]
movsxd r8, ebx
movsxd rcx, esi
add rcx, qword [rsp + 0xd0]
mov rdx, rbp
call fcn.00429770
nop
lea rbp, [0x00455570]
mov qword [rsp + 0x260], rbp
mov edx, dword [rsp + 0xd8]
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xc8]
call qword [rax + 8]
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x1000
xor r9d, r9d
xor edx, edx
lea rcx, [rdx - 1]
lea r8d, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov r14, rax
mov qword [rsp + 0x20], 0x1000
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov r15, rax
mov qword [rsp + 0x78], rax
mov rdx, r15
lea rcx, [rsp + 0x390]
call fcn.00426c60
nop
lea rax, [rsp + 0x2e0]
mov qword [0x0046ef88], rax
lea rax, [rsp + 0x200]
mov qword [0x0046ef90], rax
lea rax, [rsp + 0x390]
mov qword [0x0046ef98], rax
xor eax, eax
mov dword [rsp + 0xe8], eax
mov dword [rsp + 0xec], eax
mov dword [rsp + 0xe8], 8
lea rcx, [rsp + 0xe8]
call qword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea rdx, [rsp + 0xa8]
mov rcx, qword [0x0046ef88]
call fcn.0040cfb0
nop
mov edx, dword [rsp + 0xb8]
test edx, edx
jne 0x40f992
lea rcx, [rsp + 0xa8]
mov rax, qword [rsp + 0xa8]
call qword [rax + 8]
lea rbp, [0x004564e4]
mov qword [rsp + 0x298], rbp
mov qword [rsp + 0x290], rdi
mov ebx, r12d
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40f910
mov dword [rsp + 0x2a0], ebx
movsxd rsi, dword [rsp + 0xb8]
lea edx, [rbx + rsi]
lea rcx, [rsp + 0xa8]
mov rax, qword [rsp + 0xa8]
call qword [rax + 8]
cmp esi, esi
jge 0x40f965
mov rcx, qword [rsp + 0xb0]
lea rdx, [rsi + rcx]
movsxd rdi, ebx
add rdi, rsi
add rcx, rdi
mov eax, esi
sub eax, esi
movsxd r8, eax
call fcn.00429770
movsxd r8, ebx
mov rcx, rsi
add rcx, qword [rsp + 0xb0]
mov rdx, rbp
call fcn.00429770
nop
lea rbp, [0x00455570]
mov qword [rsp + 0x290], rbp
mov edx, dword [rsp + 0xb8]
lea r13, [0x004555a0]
test edx, edx
jle 0x40fa59
lea rcx, [rsp + 0xa8]
mov rax, qword [rsp + 0xa8]
call qword [rax + 8]
mov rbx, qword [rsp + 0xb0]
lea rdx, [rsp + 0x198]
mov rcx, qword [0x0046ef88]
call fcn.0040d1d0
mov rdi, rax
mov rax, qword [rax]
mov edx, dword [rdi + 0x10]
mov rcx, rdi
call qword [rax + 8]
mov r9d, 0x104
lea r8, [rsp + 0x4b0]
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.0040af90
mov edi, eax
mov qword [rsp + 0x198], r13
mov rcx, qword [rsp + 0x1a0]
mov qword [rsp + 0x1a0], r12
mov dword [rsp + 0x1a8], r12d
mov dword [rsp + 0x1b0], r12d
test rcx, rcx
je 0x40fa2d
call fcn.00429ab0
mov qword [rsp + 0x198], rbp
lea eax, [rdi - 1]
cmp eax, 0x102
ja 0x40fa4d
lea rcx, [rsp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov rcx, qword [0x0046ef88]
call fcn.00416420
lea rdx, [rsp + 0x38]
mov rcx, qword [0x0046ef88]
call fcn.0040cd90
nop
mov edx, dword [rsp + 0x48]
test edx, edx
jne 0x40fb72
mov edx, 0x104
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
mov r8d, 0x104
mov rdx, qword [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x40]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rsi, rcx
mov dword [rsp + 0x48], ecx
lea rbp, str..stderr.log
mov qword [rsp + 0x280], rbp
lea rax, [0x004555b0]
mov qword [rsp + 0x278], rax
mov ebx, r12d
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40fb00
mov dword [rsp + 0x288], ebx
lea edx, [rbx + rcx]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
cmp esi, esi
jge 0x40fb47
movsxd rax, esi
mov rcx, qword [rsp + 0x40]
lea rdx, [rax + rcx]
movsxd rdi, ebx
add rdi, rax
add rcx, rdi
mov eax, esi
sub eax, esi
movsxd r8, eax
call fcn.00429770
movsxd r8, ebx
movsxd rcx, esi
add rcx, qword [rsp + 0x40]
mov rdx, rbp
call fcn.00429770
nop
lea rbp, [0x00455570]
mov qword [rsp + 0x278], rbp
mov edx, dword [rsp + 0x48]
test edx, edx
je 0x40fb90
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
mov rdx, qword [rsp + 0x40]
lea rcx, [0x0046f010]
call fcn.004266c0
lea rdx, [rsp + 0x110]
mov rcx, qword [0x0046ef88]
call fcn.0040cb70
nop
mov edx, dword [rsp + 0x120]
test edx, edx
je 0x40fbd7
lea rcx, [rsp + 0x110]
mov rax, qword [rsp + 0x110]
call qword [rax + 8]
mov rdx, qword [rsp + 0x118]
lea rcx, [0x0046f010]
call fcn.004265f0
mov edx, dword [rsp + 0x48]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
mov r11, qword [rsp + 0x40]
mov qword [rsp + 0x2b0], r11
mov ecx, r12d
mov dword [rsp + 0x2b8], r12d
test r11, r11
je 0x40fc23
cmp byte [r11], cl
je 0x40fc23
nop
nop
inc ecx
movsxd rax, ecx
cmp byte [rax + r11], 0
jne 0x40fc10
mov dword [rsp + 0x2b8], ecx
mov eax, ecx
mov ebx, dword [rsp + 0x120]
cmp ebx, ecx
cmovl eax, ebx
mov edi, r12d
mov r8, r12
movsxd r10, eax
mov rsi, qword [rsp + 0x118]
test eax, eax
jle 0x40fc6a
mov rdx, rsi
mov r9, r11
sub r9, rsi
nop
movzx eax, byte [r9 + rdx]
cmp byte [rdx], al
jne 0x40fc66
inc edi
inc r8
inc rdx
cmp r8, r10
jl 0x40fc50
test edi, edi
js 0x40fc78
cmp edi, ebx
jge 0x40fc78
movsxd rax, edi
movzx r8d, byte [rax + rsi]
jmp 0x40fc7b
xor r8b, r8b
test edi, edi
js 0x40fc8d
cmp edi, ecx
jge 0x40fc8d
movsxd rax, edi
movzx edx, byte [rax + r11]
jmp 0x40fc8f
xor dl, dl
movsx ecx, r8b
movsx eax, dl
sub ecx, eax
mov qword [rsp + 0x2a8], rbp
mov eax, r12d
sete al
mov dword [0x0046ef80], eax
mov dword [rsp + 0x30], r12d
lea rdx, [rsp + 0x1b8]
lea rcx, [rsp + 0x2e0]
call fcn.0040c9c0
mov rdi, rax
mov rax, qword [rax]
mov edx, dword [rdi + 0x10]
mov rcx, rdi
call qword [rax + 8]
lea r8, [rsp + 0x30]
lea rdx, [0x004564d4]
mov rcx, qword [rdi + 8]
call fcn.00429640
nop
mov qword [rsp + 0x1b8], r13
mov rcx, qword [rsp + 0x1c0]
mov qword [rsp + 0x1c0], r12
mov dword [rsp + 0x1c8], r12d
mov dword [rsp + 0x1d0], r12d
test rcx, rcx
je 0x40fd1d
call fcn.00429ab0
mov qword [rsp + 0x1b8], rbp
lea rcx, [rsp + 0x448]
lea r13, [0x00400000]
mov rax, qword [r13 + 0x564b8]
mov qword [rcx], rax
mov rax, qword [r13 + 0x564c0]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x564c8]
mov qword [rcx + 0x10], rax
movzx eax, byte [r13 + 0x564d0]
mov byte [rcx + 0x18], al
lea rcx, [rsp + 0x448]
lea rsi, [0x0046f060]
mov rdx, rsi
mov ebx, 0x19
mov rdi, rbx
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40fd80
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042b000
test rax, rax
je 0x40fddc
mov rdi, rsi
movzx eax, byte [rdi]
test al, al
js 0x40fdb6
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40fdb6
mov al, 0x2e
jmp 0x40fdb9
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x00456030]
call fcn.0042b440
inc rdi
dec rbx
jne 0x40fda4
lea rcx, [0x0045602c]
call fcn.0042b440
cmp byte [0x0046f060], 0
je 0x40fe82
mov ecx, dword [rsp + 0x30]
call fcn.00420c10
test eax, eax
jne 0x40fe82
lea edx, [rax + 9]
lea rcx, [rsp + 0x138]
call fcn.0040e9c0
nop
mov edx, dword [rsp + 0x148]
lea rcx, [rsp + 0x138]
mov rax, qword [rsp + 0x138]
call qword [rax + 8]
mov r8, qword [rsp + 0x140]
lea rdx, [0x00455f78]
lea rcx, [0x0046d100]
call fcn.0042ac00
cmp dword [0x0046ef80], 0
jne 0x40fe77
mov edx, dword [rsp + 0x148]
lea rcx, [rsp + 0x138]
mov rax, qword [rsp + 0x138]
call qword [rax + 8]
mov rdx, qword [rsp + 0x140]
lea rcx, [0x00455f78]
call fcn.0042b440
mov ecx, 9
call fcn.0042bba0
nop
lea rcx, [rsp + 0x430]
mov rax, qword [r13 + 0x564a0]
mov qword [rcx], rax
mov rax, qword [r13 + 0x564a8]
mov qword [rcx + 8], rax
mov eax, dword [r13 + 0x564b0]
mov dword [rcx + 0x10], eax
movzx eax, word [r13 + 0x564b4]
mov word [rcx + 0x14], ax
lea rcx, [rsp + 0x488]
mov rax, qword [r13 + 0x56480]
mov qword [rcx], rax
mov rax, qword [r13 + 0x56488]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x56490]
mov qword [rcx + 0x10], rax
movzx eax, word [r13 + 0x56498]
mov word [rcx + 0x18], ax
movzx eax, byte [r13 + 0x5649a]
mov byte [rcx + 0x1a], al
lea rcx, [rsp + 0x468]
mov rax, qword [r13 + 0x56460]
mov qword [rcx], rax
mov rax, qword [r13 + 0x56468]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x56470]
mov qword [rcx + 0x10], rax
movzx eax, word [r13 + 0x56478]
mov word [rcx + 0x18], ax
lea rcx, [rsp + 0x488]
mov rdx, rsi
mov ebx, 0x1b
mov rdi, rbx
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40ff40
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042b000
test rax, rax
je 0x40ff9c
mov rdi, rsi
movzx eax, byte [rdi]
test al, al
js 0x40ff76
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40ff76
mov al, 0x2e
jmp 0x40ff79
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x00456030]
call fcn.0042b440
inc rdi
dec rbx
jne 0x40ff64
lea rcx, [0x0045602c]
call fcn.0042b440
mov rbp, qword [0x0046f060]
lea rcx, [rsp + 0x468]
mov rdx, rsi
mov ebx, 0x1a
mov rdi, rbx
nop
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40ffc0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042b000
test rax, rax
je 0x41001c
mov rdi, rsi
movzx eax, byte [rdi]
test al, al
js 0x40fff6
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40fff6
mov al, 0x2e
jmp 0x40fff9
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x00456030]
call fcn.0042b440
inc rdi
dec rbx
jne 0x40ffe4
lea rcx, [0x0045602c]
call fcn.0042b440
mov esi, dword [0x0046f060]
lea rdx, [rsp + 0x430]
lea rcx, [0x0046f060]
mov ebx, 0x16
mov rdi, rbx
nop
nop
movzx eax, byte [rdx]
mov byte [rcx], al
inc rcx
inc rdx
dec rdi
jne 0x410040
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042b000
test rax, rax
je 0x4100a0
lea rdi, [0x0046f060]
movzx eax, byte [rdi]
test al, al
js 0x41007a
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x41007a
mov al, 0x2e
jmp 0x41007d
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x00456030]
call fcn.0042b440
inc rdi
dec rbx
jne 0x410068
lea rcx, [0x0045602c]
call fcn.0042b440
cmp byte [0x0046f060], 0
je 0x41014f
mov r8d, esi
mov rdx, rbp
lea rcx, [0x0046f060]
call fcn.0040e850
test eax, eax
jne 0x41014f
lea edx, [rax + 0xb]
lea rcx, [rsp + 0x178]
call fcn.0040e9c0
nop
mov edx, dword [rsp + 0x188]
lea rcx, [rsp + 0x178]
mov rax, qword [rsp + 0x178]
call qword [rax + 8]
mov r8, qword [rsp + 0x180]
lea rdx, [0x00455f78]
lea rcx, [0x0046d100]
call fcn.0042ac00
cmp dword [0x0046ef80], 0
jne 0x410144
mov edx, dword [rsp + 0x188]
lea rcx, [rsp + 0x178]
mov rax, qword [rsp + 0x178]
call qword [rax + 8]
mov rdx, qword [rsp + 0x180]
lea rcx, [0x00455f78]
call fcn.0042b440
mov ecx, 0xb
call fcn.0042bba0
nop
lea rdx, [rsp + 0xf0]
mov rcx, qword [0x0046ef88]
call fcn.0040c150
nop
mov esi, r12d
nop
nop
nop
inc esi
movsxd rax, esi
cmp byte [rax + r13 + 0x55bd4], 0
jne 0x410170
mov eax, esi
mov edx, dword [rsp + 0x100]
cmp edx, esi
cmovl eax, edx
mov ebp, r12d
mov rbx, r12
movsxd r13, eax
test eax, eax
jle 0x4101e8
lea r15, [0x00400000]
movzx r12d, byte [rbx + r15 + 0x55bd4]
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x4101d3
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp edi, eax
jne 0x4101dd
inc ebp
inc rbx
cmp rbx, r13
jl 0x4101a2
test ebp, ebp
js 0x4101fd
mov edx, dword [rsp + 0x100]
cmp ebp, edx
jge 0x410204
movsxd rcx, ebp
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rcx + rax]
jmp 0x410206
mov edx, dword [rsp + 0x100]
xor cl, cl
test ebp, ebp
mov r15, qword [rsp + 0x78]
js 0x410227
cmp ebp, esi
jge 0x410227
movsxd rax, ebp
lea rdi, [0x00400000]
movzx eax, byte [rax + rdi + 0x55bd4]
jmp 0x410230
xor al, al
lea rdi, [0x00400000]
movsx ecx, cl
movsx eax, al
sub ecx, eax
mov r12d, 0
mov eax, r12d
sete al
test eax, eax
je 0x410521
lea rdx, [rsp + 0x58]
mov rcx, qword [0x0046ef88]
call fcn.0040bdf0
nop
mov ebx, dword [rsp + 0x68]
test ebx, ebx
jne 0x410326
lea rdx, [rsp + 0x1d8]
mov rcx, qword [0x0046ef88]
call fcn.00404560
mov rdi, rax
xor edx, edx
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
movsxd rsi, dword [rdi + 0x10]
mov rbp, qword [rdi + 8]
movsxd rbx, dword [rsp + 0x68]
lea edx, [rbx + rsi]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
cmp ebx, ebx
jge 0x4102cd
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rbx]
lea rcx, [rax + rsi]
add rcx, rbx
mov eax, ebx
sub eax, ebx
movsxd r8, eax
call fcn.00429770
mov r8, rsi
mov rcx, rbx
add rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.00429770
nop
lea r13, [0x004555a0]
mov qword [rsp + 0x1d8], r13
mov rcx, qword [rsp + 0x1e0]
mov qword [rsp + 0x1e0], r12
mov dword [rsp + 0x1e8], r12d
mov dword [rsp + 0x1f0], r12d
test rcx, rcx
je 0x410320
call fcn.00429ab0
mov ebx, dword [rsp + 0x68]
jmp 0x41032d
mov ebx, dword [rsp + 0x68]
jmp 0x41032d
lea r13, [0x004555a0]
mov ecx, r12d
mov rax, r12
test ebx, ebx
jle 0x41035c
nop
nop
nop
mov rdx, qword [rsp + 0x60]
cmp byte [rdx + rax], 0x3a
jne 0x410353
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x68]
inc ecx
inc rax
cmp ecx, ebx
jl 0x410340
mov ecx, r12d
mov rax, r12
test ebx, ebx
jle 0x41038c
nop
nop
nop
mov rdx, qword [rsp + 0x60]
cmp byte [rdx + rax], 0x5c
jne 0x410383
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x68]
inc ecx
inc rax
cmp ecx, ebx
jl 0x410370
lea rbp, str..j2e.mutex
mov qword [rsp + 0x2d0], rbp
lea rax, [0x004555b0]
mov qword [rsp + 0x2c8], rax
mov esi, r12d
nop
inc esi
movsxd rax, esi
cmp byte [rax + rbp], 0
jne 0x4103b0
mov dword [rsp + 0x2d8], esi
lea edx, [rsi + rbx]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
cmp ebx, ebx
jge 0x4103f7
movsxd rcx, ebx
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rcx]
movsxd rdi, esi
add rdi, rax
add rcx, rdi
mov eax, ebx
sub eax, ebx
movsxd r8, eax
call fcn.00429770
movsxd r8, esi
movsxd rcx, ebx
add rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.00429770
nop
mov edx, dword [rsp + 0x68]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
mov r8, qword [rsp + 0x60]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rdi, rax
test rax, rax
jne 0x410449
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CreateMutex_error:__d_n
call fcn.0042b440
jmp 0x41046b
mov edx, 0x64
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4104f5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, 0xd
lea rcx, [rsp + 0x158]
call fcn.0040e9c0
nop
mov edx, dword [rsp + 0x168]
lea rcx, [rsp + 0x158]
mov rax, qword [rsp + 0x158]
call qword [rax + 8]
mov r8, qword [rsp + 0x160]
lea rdx, [0x00455f78]
lea rcx, [0x0046d100]
call fcn.0042ac00
cmp dword [0x0046ef80], 0
jne 0x4104ea
mov edx, dword [rsp + 0x168]
lea rcx, [rsp + 0x158]
mov rax, qword [rsp + 0x158]
call qword [rax + 8]
mov rdx, qword [rsp + 0x160]
lea rcx, [0x00455f78]
call fcn.0042b440
mov ecx, 0xb
call fcn.0042bba0
nop
mov qword [rsp + 0x58], r13
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x60], r12
mov dword [rsp + 0x68], r12d
mov dword [rsp + 0x70], r12d
test rcx, rcx
je 0x4105ec
call fcn.00429ab0
jmp 0x4105ec
mov ebp, r12d
nop
nop
nop
inc ebp
movsxd rax, ebp
cmp byte [rax + rdi + 0x5642c], r12b
jne 0x410530
mov eax, ebp
cmp edx, ebp
cmovl eax, edx
mov esi, r12d
mov rbx, r12
movsxd r13, eax
test eax, eax
jle 0x4105a0
movzx r12d, byte [rbx + rdi + 0x5642c]
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x41058b
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp edi, eax
jne 0x410595
lea rdi, [0x00400000]
inc esi
inc rbx
cmp rbx, r13
jl 0x410553
test esi, esi
js 0x4105b5
mov edx, dword [rsp + 0x100]
cmp esi, edx
jge 0x4105b5
movsxd rcx, esi
mov rax, qword [rsp + 0xf8]
movzx ecx, byte [rcx + rax]
jmp 0x4105b7
xor cl, cl
test esi, esi
js 0x4105d3
cmp esi, ebp
jge 0x4105d3
movsxd rax, esi
lea rdi, [0x00400000]
movzx edx, byte [rax + rdi + 0x5642c]
jmp 0x4105d5
xor dl, dl
movsx ecx, cl
movsx eax, dl
sub ecx, eax
jne 0x4105e9
call fcn.00427730
xor r12d, r12d
jmp 0x4105ec
xor r12d, r12d
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x2e0]
call fcn.0040bfa0
nop
mov esi, r12d
lea rcx, [0x00400000]
nop
inc esi
movsxd rax, esi
cmp byte [rax + rcx + 0x55bd4], 0
jne 0x410610
mov eax, esi
mov edx, dword [rsp + 0x98]
cmp edx, esi
cmovl eax, edx
mov ebp, r12d
mov rbx, r12
movsxd r13, eax
test eax, eax
jle 0x41068d
nop
nop
movzx r12d, byte [rbx + rcx + 0x55bd4]
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x410671
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp edi, eax
jne 0x410682
inc ebp
inc rbx
cmp rbx, r13
lea rcx, [0x00400000]
jl 0x410640
test ebp, ebp
js 0x4106a2
mov edx, dword [rsp + 0x98]
cmp ebp, edx
jge 0x4106a9
movsxd rcx, ebp
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rcx + rax]
jmp 0x4106ab
mov edx, dword [rsp + 0x98]
xor cl, cl
test ebp, ebp
js 0x4106c7
cmp ebp, esi
jge 0x4106c7
movsxd rax, ebp
lea rdi, [0x00400000]
movzx eax, byte [rax + rdi + 0x55bd4]
jmp 0x4106d0
xor al, al
lea rdi, [0x00400000]
movsx ecx, cl
movsx eax, al
lea r8, [0x00456428]
sub ecx, eax
je 0x4107d7
xor ebp, ebp
nop
nop
nop
inc ebp
movsxd rax, ebp
cmp byte [rax + rdi + 0x56420], 0
jne 0x4106f0
mov eax, ebp
cmp edx, ebp
cmovl eax, edx
xor esi, esi
xor ebx, ebx
movsxd r13, eax
test eax, eax
jle 0x41075e
movzx r12d, byte [rbx + rdi + 0x56420]
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x410749
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp edi, eax
jne 0x410753
lea rdi, [0x00400000]
inc esi
inc rbx
cmp rbx, r13
jl 0x410711
test esi, esi
js 0x410773
mov edx, dword [rsp + 0x98]
cmp esi, edx
jge 0x41077a
movsxd rcx, esi
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rcx + rax]
jmp 0x41077c
mov edx, dword [rsp + 0x98]
xor cl, cl
test esi, esi
js 0x410798
cmp esi, ebp
jge 0x410798
movsxd rax, esi
lea rdi, [0x00400000]
movzx eax, byte [rax + rdi + 0x56420]
jmp 0x41079a
xor al, al
movsx ecx, cl
movsx eax, al
sub ecx, eax
je 0x4107d0
lea rdx, [0x00456428]
lea rcx, [rsp + 0x88]
call fcn.00401e00
test eax, eax
jne 0x4108db
mov edx, dword [rsp + 0x98]
lea r8, [0x00456428]
jmp 0x4107d7
lea r8, [0x00456428]
xor esi, esi
nop
nop
inc esi
movsxd rax, esi
cmp byte [rax + r8], 0
jne 0x4107e0
mov eax, esi
cmp edx, esi
cmovl eax, edx
xor ebp, ebp
xor ebx, ebx
movsxd r13, eax
test eax, eax
jle 0x410849
nop
movzx r12d, byte [rbx + r8]
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x410834
movsx ecx, cl
call fcn.00429c10
mov edi, eax
movsx ecx, r12b
call fcn.00429c10
cmp edi, eax
jne 0x41083e
lea r8, [0x00456428]
inc ebp
inc rbx
cmp rbx, r13
jl 0x410800
test ebp, ebp
js 0x41085e
mov edx, dword [rsp + 0x98]
cmp ebp, edx
jge 0x41085e
movsxd rcx, ebp
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rcx + rax]
jmp 0x410860
xor cl, cl
test ebp, ebp
js 0x410878
cmp ebp, esi
jge 0x410878
movsxd rax, ebp
lea rdx, [0x00456428]
movzx edx, byte [rax + rdx]
jmp 0x41087a
xor dl, dl
movsx ecx, cl
movsx eax, dl
sub ecx, eax
neg ecx
sbb r9d, r9d
add r9d, 2
mov r8, qword [rsp + 0x130]
mov edx, dword [rsp + 0x80]
lea rcx, [0x0046efc0]
call fcn.00429040
lea rdx, [0x0046d020]
lea rcx, [0x0046efc0]
call fcn.00428620
mov edi, dword [0x0046d030]
mov edx, edi
lea rcx, [0x0046d020]
mov rax, qword [0x0046d020]
call qword [rax + 8]
mov rbx, qword [0x0046d028]
jmp 0x4108ea
mov edi, dword [rsp + 0x80]
mov rbx, qword [rsp + 0x130]
lea rbp, [0x004555a0]
mov qword [rsp + 0x88], rbp
mov rcx, qword [rsp + 0x90]
xor esi, esi
mov qword [rsp + 0x90], rsi
mov dword [rsp + 0x98], esi
mov dword [rsp + 0xa0], esi
test rcx, rcx
je 0x410923
call fcn.00429ab0
lea r12, [0x00455570]
mov qword [rsp + 0x88], r12
lea rdx, [rbx + 8]
lea ecx, [rdi - 1]
call fcn.00413bd0
mov edi, eax
lea rcx, [rsp + 0x200]
call fcn.00408520
mov qword [0x0046ef88], rsi
mov qword [0x0046ef90], rsi
test r14, r14
je 0x410973
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov qword [rsp + 0xf0], rbp
mov rcx, qword [rsp + 0xf8]
mov qword [rsp + 0xf8], rsi
mov dword [rsp + 0x100], esi
mov dword [rsp + 0x108], esi
test rcx, rcx
je 0x4109a3
call fcn.00429ab0
mov qword [rsp + 0xf0], r12
mov qword [rsp + 0x110], rbp
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 0x118], rsi
mov dword [rsp + 0x120], esi
mov dword [rsp + 0x128], esi
test rcx, rcx
je 0x4109db
call fcn.00429ab0
mov qword [rsp + 0x110], r12
mov qword [rsp + 0x38], rbp
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x50], esi
test rcx, rcx
je 0x410a04
call fcn.00429ab0
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xa8], rbp
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], rsi
mov dword [rsp + 0xb8], esi
mov dword [rsp + 0xc0], esi
test rcx, rcx
je 0x410a39
call fcn.00429ab0
mov qword [rsp + 0xa8], r12
lea rcx, [rsp + 0x390]
call fcn.00426bc0
nop
mov qword [rsp + 0xc8], rbp
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd8], esi
mov dword [rsp + 0xe0], esi
test rcx, rcx
je 0x410a7f
call fcn.00429ab0
mov qword [rsp + 0xc8], r12
lea rcx, [rsp + 0x200]
call fcn.00408520
nop
mov qword [rsp + 0x220], rbp
mov rcx, qword [rsp + 0x228]
mov qword [rsp + 0x228], rsi
mov dword [rsp + 0x230], esi
mov dword [rsp + 0x238], esi
test rcx, rcx
je 0x410ac5
call fcn.00429ab0
mov qword [rsp + 0x220], r12
lea rax, [0x004555b8]
mov qword [rsp + 0x200], rax
mov rcx, qword [rsp + 0x208]
mov qword [rsp + 0x208], rsi
mov dword [rsp + 0x210], esi
mov dword [rsp + 0x218], esi
test rcx, rcx
je 0x410b04
call fcn.00429ab0
lea rax, [0x00455578]
mov qword [rsp + 0x200], rax
lea rcx, [rsp + 0x2e0]
call fcn.00415f00
mov eax, edi
mov rcx, qword [rsp + 0x5c0]
call fcn.004541d0
mov rbx, qword [rsp + 0x620]
mov rbp, qword [rsp + 0x628]
mov rsi, qword [rsp + 0x600]
mov rdi, qword [rsp + 0x5f8]
mov r12, qword [rsp + 0x5f0]
mov r13, qword [rsp + 0x5e8]
mov r14, qword [rsp + 0x5e0]
mov r15, qword [rsp + 0x5d8]
add rsp, 0x608
ret