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

Disassembly:
mov rax, rsp
sub rsp, 0x618
mov qword [rsp + 0x2d0], 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 [0x0044d028]
mov qword [rsp + 0x5d0], rax
mov qword [rsp + 0x140], rdx
mov dword [rsp + 0x78], ecx
lea rdx, [0x0043dac1]
xor ecx, ecx
call fcn.004287d0
mov edx, 1
lea rcx, [rsp + 0x2f0]
call fcn.0041aa70
nop
lea rcx, [rsp + 0x210]
call fcn.004036d0
nop
lea rdi, [section..SHMMESS]
mov qword [rsp + 0xe0], rdi
xor r15d, r15d
mov qword [rsp + 0xe8], r15
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x2f0]
call fcn.00407610
nop
lea r14, [0x0043d780]
lea r13, [0x0043d5e0]
mov esi, dword [rsp + 0xd0]
test esi, esi
je 0x40b191
mov ecx, r15d
mov rax, r15
test esi, esi
jle 0x40b092
nop
nop
nop
mov rdx, qword [rsp + 0xc8]
cmp byte [rdx + rax], 0x5c
jne 0x40b089
mov byte [rdx + rax], 0x2e
mov esi, dword [rsp + 0xd0]
inc ecx
inc rax
cmp ecx, esi
jl 0x40b070
lea rbp, str..j2e.mapping
mov qword [rsp + 0x290], rbp
mov qword [rsp + 0x288], r14
mov ebx, r15d
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40b0b0
mov dword [rsp + 0x298], ebx
lea edx, [rbx + rsi]
lea rcx, [rsp + 0xc0]
mov rax, qword [rsp + 0xc0]
call qword [rax + 8]
cmp esi, esi
jge 0x40b100
movsxd rax, esi
mov rcx, qword [rsp + 0xc8]
lea rdx, [rax + rcx]
movsxd rdi, ebx
add rdi, rax
add rcx, rdi
mov eax, esi
sub eax, esi
movsxd r8, eax
call fcn.004254c0
movsxd r8, ebx
movsxd rcx, esi
add rcx, qword [rsp + 0xc8]
mov rdx, rbp
call fcn.004254c0
nop
mov qword [rsp + 0x288], r13
mov edx, dword [rsp + 0xd0]
lea rcx, [rsp + 0xc0]
mov rax, qword [rsp + 0xc0]
call qword [rax + 8]
mov rdx, qword [rsp + 0xc8]
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 qword [rsp + 0xe8], 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 rdi, rax
mov qword [rsp + 0xe0], rax
mov rdx, rdi
lea rcx, [rsp + 0x3a0]
call fcn.004216c0
nop
lea rax, [rsp + 0x2f0]
mov qword [0x0044e5a8], rax
lea rax, [rsp + 0x210]
mov qword [0x0044e5b0], rax
lea rax, [rsp + 0x3a0]
mov qword [0x0044e5b8], rax
xor eax, eax
mov dword [rsp + 0xf8], eax
mov dword [rsp + 0xfc], eax
mov dword [rsp + 0xf8], 8
lea rcx, [rsp + 0xf8]
call qword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea rdx, [rsp + 0xa0]
mov rcx, qword [0x0044e5a8]
call fcn.004087d0
nop
mov edx, dword [rsp + 0xb0]
test edx, edx
jne 0x40b2cb
lea rcx, [rsp + 0xa0]
mov rax, qword [rsp + 0xa0]
call qword [rax + 8]
lea rbp, [0x0043e06c]
mov qword [rsp + 0x2c0], rbp
mov qword [rsp + 0x2b8], r14
mov ebx, r15d
nop
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40b250
mov dword [rsp + 0x2c8], ebx
movsxd rsi, dword [rsp + 0xb0]
lea edx, [rbx + rsi]
lea rcx, [rsp + 0xa0]
mov rax, qword [rsp + 0xa0]
call qword [rax + 8]
cmp esi, esi
jge 0x40b2a5
mov rcx, qword [rsp + 0xa8]
lea rdx, [rsi + rcx]
movsxd rdi, ebx
add rdi, rsi
add rcx, rdi
mov eax, esi
sub eax, esi
movsxd r8, eax
call fcn.004254c0
movsxd r8, ebx
mov rcx, rsi
add rcx, qword [rsp + 0xa8]
mov rdx, rbp
call fcn.004254c0
nop
mov qword [rsp + 0x2b8], r13
mov edx, dword [rsp + 0xb0]
lea r12, [0x0043d608]
test edx, edx
jle 0x40b392
lea rcx, [rsp + 0xa0]
mov rax, qword [rsp + 0xa0]
call qword [rax + 8]
mov rbx, qword [rsp + 0xa8]
lea rdx, [rsp + 0x1a8]
mov rcx, qword [0x0044e5a8]
call fcn.00408b00
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 + 0x4c0]
mov rdx, rbx
mov rcx, qword [rdi + 8]
call fcn.00405df0
mov edi, eax
mov qword [rsp + 0x1a8], r12
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp + 0x1b0], r15
mov dword [rsp + 0x1b8], r15d
mov dword [rsp + 0x1c0], r15d
test rcx, rcx
je 0x40b366
call fcn.00425490
mov qword [rsp + 0x1a8], r13
lea eax, [rdi - 1]
cmp eax, 0x102
ja 0x40b386
lea rcx, [rsp + 0x4c0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov rcx, qword [0x0044e5a8]
call fcn.00412480
lea rdx, [rsp + 0x38]
mov rcx, qword [0x0044e5a8]
call fcn.004085b0
nop
mov edx, dword [rsp + 0x48]
test edx, edx
jne 0x40b49b
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 + 0x278], rbp
mov qword [rsp + 0x270], r14
mov ebx, r15d
nop
inc ebx
movsxd rax, ebx
cmp byte [rax + rbp], 0
jne 0x40b430
mov dword [rsp + 0x280], ebx
lea edx, [rbx + rcx]
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
cmp esi, esi
jge 0x40b477
movsxd rcx, esi
mov rax, 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.004254c0
movsxd r8, ebx
movsxd rcx, esi
add rcx, qword [rsp + 0x40]
mov rdx, rbp
call fcn.004254c0
nop
mov qword [rsp + 0x270], r13
mov edx, dword [rsp + 0x48]
test edx, edx
je 0x40b4b9
lea rcx, [rsp + 0x38]
mov rax, qword [rsp + 0x38]
call qword [rax + 8]
mov rdx, qword [rsp + 0x40]
lea rcx, [0x0044e630]
call fcn.00421100
lea rdx, [rsp + 0x120]
mov rcx, qword [0x0044e5a8]
call fcn.00408390
nop
mov edx, dword [rsp + 0x130]
test edx, edx
je 0x40b500
lea rcx, [rsp + 0x120]
mov rax, qword [rsp + 0x120]
call qword [rax + 8]
mov rdx, qword [rsp + 0x128]
lea rcx, [0x0044e630]
call fcn.00421030
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 + 0x2a8], r11
mov ecx, r15d
mov dword [rsp + 0x2b0], r15d
test r11, r11
je 0x40b546
cmp byte [r11], cl
je 0x40b546
inc ecx
movsxd rax, ecx
cmp byte [rax + r11], 0
jne 0x40b533
mov dword [rsp + 0x2b0], ecx
mov eax, ecx
mov ebx, dword [rsp + 0x130]
cmp ebx, ecx
cmovl eax, ebx
mov edi, r15d
mov r8, r15
movsxd r10, eax
mov rsi, qword [rsp + 0x128]
test eax, eax
jle 0x40b58c
mov rdx, rsi
mov r9, r11
sub r9, rsi
movzx eax, byte [r9 + rdx]
cmp byte [rdx], al
jne 0x40b588
inc edi
inc r8
inc rdx
cmp r8, r10
jl 0x40b572
test edi, edi
js 0x40b59a
cmp edi, ebx
jge 0x40b59a
movsxd rax, edi
movzx r8d, byte [rax + rsi]
jmp 0x40b59d
xor r8b, r8b
test edi, edi
js 0x40b5af
cmp edi, ecx
jge 0x40b5af
movsxd rax, edi
movzx edx, byte [rax + r11]
jmp 0x40b5b1
xor dl, dl
movsx ecx, r8b
movsx eax, dl
sub ecx, eax
mov qword [rsp + 0x2a0], r13
mov eax, r15d
sete al
mov dword [0x0044e5a0], eax
mov dword [rsp + 0x7c], r15d
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0x2f0]
call fcn.004081e0
mov rdi, rax
mov rax, qword [rax]
mov edx, dword [rdi + 0x10]
mov rcx, rdi
call qword [rax + 8]
lea r8, [rsp + 0x7c]
lea rdx, [0x0043e05c]
mov rcx, qword [rdi + 8]
call fcn.00427410
nop
mov qword [rsp + 0x1c8], r12
mov rcx, qword [rsp + 0x1d0]
mov qword [rsp + 0x1d0], r15
mov dword [rsp + 0x1d8], r15d
mov dword [rsp + 0x1e0], r15d
test rcx, rcx
je 0x40b63f
call fcn.00425490
mov qword [rsp + 0x1c8], r13
lea rcx, [rsp + 0x458]
lea r14, [0x00400000]
mov rax, qword [r14 + 0x3e040]
mov qword [rcx], rax
mov rax, qword [r14 + 0x3e048]
mov qword [rcx + 8], rax
mov rax, qword [r14 + 0x3e050]
mov qword [rcx + 0x10], rax
movzx eax, byte [r14 + 0x3e058]
mov byte [rcx + 0x18], al
lea rcx, [rsp + 0x458]
lea r12, [0x0044e680]
mov rdx, r12
mov ebx, 0x19
mov rdi, rbx
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40b6a0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.00426ba0
test rax, rax
je 0x40b6fc
mov rdi, r12
movzx eax, byte [rdi]
test al, al
js 0x40b6d6
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40b6d6
mov al, 0x2e
jmp 0x40b6d9
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x0043dad0]
call fcn.00426d90
inc rdi
dec rbx
jne 0x40b6c4
lea rcx, [0x0043dacc]
call fcn.00426d90
cmp byte [0x0044e680], 0
je 0x40b7a9
mov edx, dword [rsp + 0x39c]
mov ecx, dword [rsp + 0x7c]
call fcn.0041cf70
test eax, eax
jne 0x40b7a9
lea edx, [rax + 9]
lea rcx, [rsp + 0x148]
call fcn.0040a2f0
nop
mov edx, dword [rsp + 0x158]
lea rcx, [rsp + 0x148]
mov rax, qword [rsp + 0x148]
call qword [rax + 8]
mov r8, qword [rsp + 0x150]
lea rdx, [0x0043d998]
lea rcx, [0x0044d180]
call fcn.00426810
cmp dword [0x0044e5a0], 0
jne 0x40b79e
mov edx, dword [rsp + 0x158]
lea rcx, [rsp + 0x148]
mov rax, qword [rsp + 0x148]
call qword [rax + 8]
mov rdx, qword [rsp + 0x150]
lea rcx, [0x0043d998]
call fcn.00426d90
mov ecx, 9
call fcn.004279e0
nop
lea rcx, [rsp + 0x440]
mov rax, qword [r14 + 0x3e028]
mov qword [rcx], rax
mov rax, qword [r14 + 0x3e030]
mov qword [rcx + 8], rax
mov eax, dword [r14 + 0x3e038]
mov dword [rcx + 0x10], eax
movzx eax, word [r14 + 0x3e03c]
mov word [rcx + 0x14], ax
lea rcx, [rsp + 0x498]
mov rax, qword [r14 + 0x3e008]
mov qword [rcx], rax
mov rax, qword [r14 + 0x3e010]
mov qword [rcx + 8], rax
mov rax, qword [r14 + 0x3e018]
mov qword [rcx + 0x10], rax
movzx eax, word [r14 + 0x3e020]
mov word [rcx + 0x18], ax
movzx eax, byte [r14 + 0x3e022]
mov byte [rcx + 0x1a], al
lea rcx, [rsp + 0x478]
mov rax, qword [r14 + 0x3dfe8]
mov qword [rcx], rax
mov rax, qword [r14 + 0x3dff0]
mov qword [rcx + 8], rax
mov rax, qword [r14 + 0x3dff8]
mov qword [rcx + 0x10], rax
movzx eax, word [r14 + 0x3e000]
mov word [rcx + 0x18], ax
lea rcx, [rsp + 0x498]
mov rdx, r12
mov ebx, 0x1b
mov rdi, rbx
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40b862
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.00426ba0
test rax, rax
je 0x40b8be
mov rdi, r12
movzx eax, byte [rdi]
test al, al
js 0x40b898
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40b898
mov al, 0x2e
jmp 0x40b89b
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x0043dad0]
call fcn.00426d90
inc rdi
dec rbx
jne 0x40b886
lea rcx, [0x0043dacc]
call fcn.00426d90
mov rbp, qword [0x0044e680]
lea rcx, [rsp + 0x478]
mov rdx, r12
mov ebx, 0x1a
mov rdi, rbx
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec rdi
jne 0x40b8e0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.00426ba0
test rax, rax
je 0x40b93c
mov rdi, r12
movzx eax, byte [rdi]
test al, al
js 0x40b916
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40b916
mov al, 0x2e
jmp 0x40b919
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x0043dad0]
call fcn.00426d90
inc rdi
dec rbx
jne 0x40b904
lea rcx, [0x0043dacc]
call fcn.00426d90
mov esi, dword [0x0044e680]
lea rdx, [rsp + 0x440]
mov rcx, r12
mov ebx, 0x16
mov rdi, rbx
nop
nop
nop
movzx eax, byte [rdx]
mov byte [rcx], al
inc rcx
inc rdx
dec rdi
jne 0x40b960
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.00426ba0
test rax, rax
je 0x40b9bc
mov rdi, r12
movzx eax, byte [rdi]
test al, al
js 0x40b996
movzx eax, byte [rdi]
cmp al, 0x20
jge 0x40b996
mov al, 0x2e
jmp 0x40b999
movzx eax, byte [rdi]
movsx edx, al
lea rcx, [0x0043dad0]
call fcn.00426d90
inc rdi
dec rbx
jne 0x40b984
lea rcx, [0x0043dacc]
call fcn.00426d90
cmp byte [0x0044e680], 0
je 0x40ba67
mov r8d, esi
mov rdx, rbp
mov rcx, r12
call fcn.0040a180
test eax, eax
jne 0x40ba67
lea edx, [rax + 0xb]
lea rcx, [rsp + 0x188]
call fcn.0040a2f0
nop
mov edx, dword [rsp + 0x198]
lea rcx, [rsp + 0x188]
mov rax, qword [rsp + 0x188]
call qword [rax + 8]
mov r8, qword [rsp + 0x190]
lea rdx, [0x0043d998]
lea rcx, [0x0044d180]
call fcn.00426810
cmp dword [0x0044e5a0], 0
jne 0x40ba5c
mov edx, dword [rsp + 0x198]
lea rcx, [rsp + 0x188]
mov rax, qword [rsp + 0x188]
call qword [rax + 8]
mov rdx, qword [rsp + 0x190]
lea rcx, [0x0043d998]
call fcn.00426d90
mov ecx, 0xb
call fcn.004279e0
nop
lea rdx, [rsp + 0x100]
mov rcx, qword [0x0044e5a8]
call fcn.00407970
nop
mov esi, r15d
nop
inc esi
movsxd rax, esi
cmp byte [rax + r14 + 0x3dfdc], 0
jne 0x40ba80
mov eax, esi
mov edx, dword [rsp + 0x110]
cmp edx, esi
cmovl eax, edx
mov ebp, r15d
mov rbx, r15
movsxd r13, eax
test eax, eax
jle 0x40baf6
nop
nop
movzx r12d, byte [rbx + r14 + 0x3dfdc]
mov rax, qword [rsp + 0x108]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x40bae1
movsx ecx, cl
call fcn.00426440
mov edi, eax
movsx ecx, r12b
call fcn.00426440
cmp edi, eax
jne 0x40baeb
inc ebp
inc rbx
cmp rbx, r13
jl 0x40bab0
test ebp, ebp
js 0x40bb0b
mov edx, dword [rsp + 0x110]
cmp ebp, edx
jge 0x40bb12
movsxd rcx, ebp
mov rax, qword [rsp + 0x108]
movzx ecx, byte [rcx + rax]
jmp 0x40bb14
mov edx, dword [rsp + 0x110]
xor cl, cl
test ebp, ebp
js 0x40bb2a
cmp ebp, esi
jge 0x40bb2a
movsxd rax, ebp
movzx eax, byte [rax + r14 + 0x3dfdc]
jmp 0x40bb2c
xor al, al
movsx ecx, cl
movsx eax, al
sub ecx, eax
mov r14d, r15d
sete r14b
mov ebp, r15d
lea rcx, [0x00400000]
nop
nop
nop
inc ebp
movsxd rax, ebp
cmp byte [rax + rcx + 0x3dfd0], 0
jne 0x40bb50
mov eax, ebp
cmp edx, ebp
cmovl eax, edx
mov esi, r15d
mov rbx, r15
movsxd r13, eax
test eax, eax
jle 0x40bbc0
movzx r12d, byte [rbx + rcx + 0x3dfd0]
mov rax, qword [rsp + 0x108]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x40bba4
movsx ecx, cl
call fcn.00426440
mov edi, eax
movsx ecx, r12b
call fcn.00426440
cmp edi, eax
jne 0x40bbb5
inc esi
inc rbx
cmp rbx, r13
lea rcx, [0x00400000]
jl 0x40bb73
test esi, esi
js 0x40bbd5
mov edx, dword [rsp + 0x110]
cmp esi, edx
jge 0x40bbd5
movsxd rcx, esi
mov rax, qword [rsp + 0x108]
movzx ecx, byte [rcx + rax]
jmp 0x40bbd7
xor cl, cl
test esi, esi
js 0x40bbf4
cmp esi, ebp
jge 0x40bbf4
movsxd rax, esi
lea r12, [0x00400000]
movzx edx, byte [rax + r12 + 0x3dfd0]
jmp 0x40bbfd
xor dl, dl
lea r12, [0x00400000]
movsx ecx, cl
movsx eax, dl
sub ecx, eax
mov eax, r15d
sete al
mov dword [rsp + 0x30], eax
test r14d, r14d
jne 0x40bc3e
test eax, eax
jne 0x40bc3e
lea rdx, str.custom
lea rcx, [rsp + 0x100]
call fcn.00403180
test eax, eax
jne 0x40bf11
call fcn.004221e0
jmp 0x40bf14
lea rdx, [rsp + 0x58]
mov rcx, qword [0x0044e5a8]
call fcn.00407610
nop
mov ebx, dword [rsp + 0x68]
test ebx, ebx
jne 0x40bd18
lea rdx, [rsp + 0x1e8]
mov rcx, qword [0x0044e5a8]
call fcn.004089f0
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 0x40bcbf
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.004254c0
mov r8, rsi
mov rcx, rbx
add rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.004254c0
nop
lea r13, [0x0043d608]
mov qword [rsp + 0x1e8], r13
mov rcx, qword [rsp + 0x1f0]
xor edi, edi
mov qword [rsp + 0x1f0], rdi
mov dword [rsp + 0x1f8], edi
mov dword [rsp + 0x200], edi
test rcx, rcx
je 0x40bd12
call fcn.00425490
mov ebx, dword [rsp + 0x68]
jmp 0x40bd21
mov ebx, dword [rsp + 0x68]
jmp 0x40bd21
xor edi, edi
lea r13, [0x0043d608]
mov ecx, edi
mov rax, rdi
test ebx, ebx
jle 0x40bd4c
nop
nop
mov rdx, qword [rsp + 0x60]
cmp byte [rdx + rax], 0x3a
jne 0x40bd43
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x68]
inc ecx
inc rax
cmp ecx, ebx
jl 0x40bd30
mov ecx, edi
mov rax, rdi
test ebx, ebx
jle 0x40bd71
mov rdx, qword [rsp + 0x60]
cmp byte [rdx + rax], 0x5c
jne 0x40bd68
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x68]
inc ecx
inc rax
cmp ecx, ebx
jl 0x40bd55
lea rbp, str..j2e.mutex
mov qword [rsp + 0x2e0], rbp
lea rax, [0x0043d780]
mov qword [rsp + 0x2d8], rax
mov esi, edi
inc esi
movsxd rax, esi
cmp byte [rax + rbp], 0
jne 0x40bd91
mov dword [rsp + 0x2e8], esi
lea edx, [rsi + rbx]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax + 8]
cmp ebx, ebx
jge 0x40bdd8
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.004254c0
movsxd r8, esi
movsxd rcx, ebx
add rcx, qword [rsp + 0x60]
mov rdx, rbp
call fcn.004254c0
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 0x40be2e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CreateMutex_error:__d_n
call fcn.00426d90
lea r15d, [rdi + 1]
jmp 0x40be56
mov edx, 0x64
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40bee9
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov r15d, 1
test r14d, r14d
je 0x40bee9
mov edx, 0xd
lea rcx, [rsp + 0x168]
call fcn.0040a2f0
nop
mov edx, dword [rsp + 0x178]
lea rcx, [rsp + 0x168]
mov rax, qword [rsp + 0x168]
call qword [rax + 8]
mov r8, qword [rsp + 0x170]
lea rdx, [0x0043d998]
lea rcx, [0x0044d180]
call fcn.00426810
cmp dword [0x0044e5a0], 0
jne 0x40bede
mov edx, dword [rsp + 0x178]
lea rcx, [rsp + 0x168]
mov rax, qword [rsp + 0x168]
call qword [rax + 8]
mov rdx, qword [rsp + 0x170]
lea rcx, [0x0043d998]
call fcn.00426d90
mov ecx, 0xd
call fcn.004279e0
nop
mov qword [rsp + 0x58], r13
mov rcx, qword [rsp + 0x60]
xor r14d, r14d
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x70], r14d
test rcx, rcx
je 0x40bf14
call fcn.00425490
jmp 0x40bf14
xor r14d, r14d
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x2f0]
call fcn.004077c0
nop
mov esi, r14d
nop
inc esi
movsxd rax, esi
cmp byte [rax + r12 + 0x3dfdc], 0
jne 0x40bf30
mov eax, esi
mov edx, dword [rsp + 0x90]
cmp edx, esi
cmovl eax, edx
mov ebp, r14d
mov rbx, r14
movsxd r13, eax
test eax, eax
jle 0x40bfad
nop
nop
movzx r12d, byte [rbx + r12 + 0x3dfdc]
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x40bf91
movsx ecx, cl
call fcn.00426440
mov edi, eax
movsx ecx, r12b
call fcn.00426440
cmp edi, eax
jne 0x40bfa2
inc ebp
inc rbx
cmp rbx, r13
lea r12, [0x00400000]
jl 0x40bf60
test ebp, ebp
js 0x40bfc2
mov edx, dword [rsp + 0x90]
cmp ebp, edx
jge 0x40bfc9
movsxd rcx, ebp
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rcx + rax]
jmp 0x40bfcb
mov edx, dword [rsp + 0x90]
xor cl, cl
test ebp, ebp
js 0x40bfe7
cmp ebp, esi
jge 0x40bfe7
movsxd rax, ebp
lea rdi, [0x00400000]
movzx eax, byte [rax + rdi + 0x3dfdc]
jmp 0x40bff0
xor al, al
lea rdi, [0x00400000]
movsx ecx, cl
movsx eax, al
lea r8, [0x0043df98]
sub ecx, eax
je 0x40c0f9
mov ebp, r14d
nop
nop
inc ebp
movsxd rax, ebp
cmp byte [rax + rdi + 0x3df90], 0
jne 0x40c010
mov eax, ebp
cmp edx, ebp
cmovl eax, edx
mov esi, r14d
mov rbx, r14
movsxd r13, eax
test eax, eax
jle 0x40c080
movzx r12d, byte [rbx + rdi + 0x3df90]
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x40c06b
movsx ecx, cl
call fcn.00426440
mov edi, eax
movsx ecx, r12b
call fcn.00426440
cmp edi, eax
jne 0x40c075
lea rdi, [0x00400000]
inc esi
inc rbx
cmp rbx, r13
jl 0x40c033
test esi, esi
js 0x40c095
mov edx, dword [rsp + 0x90]
cmp esi, edx
jge 0x40c09c
movsxd rcx, esi
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rcx + rax]
jmp 0x40c09e
mov edx, dword [rsp + 0x90]
xor cl, cl
test esi, esi
js 0x40c0ba
cmp esi, ebp
jge 0x40c0ba
movsxd rax, esi
lea rdi, [0x00400000]
movzx eax, byte [rax + rdi + 0x3df90]
jmp 0x40c0bc
xor al, al
movsx ecx, cl
movsx eax, al
sub ecx, eax
je 0x40c0f2
lea rdx, [0x0043df98]
lea rcx, [rsp + 0x80]
call fcn.00403180
test eax, eax
jne 0x40c1f8
mov edx, dword [rsp + 0x90]
lea r8, [0x0043df98]
jmp 0x40c0f9
lea r8, [0x0043df98]
mov esi, r14d
nop
inc esi
movsxd rax, esi
cmp byte [rax + r8], 0
jne 0x40c100
mov eax, esi
cmp edx, esi
cmovl eax, edx
mov ebp, r14d
mov rbx, r14
movsxd r13, eax
test eax, eax
jle 0x40c169
movzx r12d, byte [rbx + r8]
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax + rbx]
cmp cl, r12b
je 0x40c154
movsx ecx, cl
call fcn.00426440
mov edi, eax
movsx ecx, r12b
call fcn.00426440
cmp edi, eax
jne 0x40c15e
lea r8, [0x0043df98]
inc ebp
inc rbx
cmp rbx, r13
jl 0x40c120
test ebp, ebp
js 0x40c17e
mov edx, dword [rsp + 0x90]
cmp ebp, edx
jge 0x40c17e
movsxd rcx, ebp
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rcx + rax]
jmp 0x40c180
xor cl, cl
test ebp, ebp
js 0x40c198
cmp ebp, esi
jge 0x40c198
movsxd rax, ebp
lea rdx, [0x0043df98]
movzx edx, byte [rax + rdx]
jmp 0x40c19a
xor dl, dl
movsx ecx, cl
movsx eax, dl
sub ecx, eax
neg ecx
sbb r9d, r9d
add r9d, 2
mov r8, qword [rsp + 0x140]
mov edx, dword [rsp + 0x78]
lea rcx, [0x0044e5e0]
call fcn.00424e80
lea rdx, section..data
lea rcx, [0x0044e5e0]
call fcn.00424460
mov edi, dword [0x0044d010]
mov edx, edi
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 8]
mov rbx, qword [0x0044d008]
jmp 0x40c204
mov edi, dword [rsp + 0x78]
mov rbx, qword [rsp + 0x140]
lea rsi, [0x0043d608]
mov qword [rsp + 0x80], rsi
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x88], r14
mov dword [rsp + 0x90], r14d
mov dword [rsp + 0x98], r14d
test rcx, rcx
je 0x40c23d
call fcn.00425490
lea rbp, [0x0043d5e0]
mov qword [rsp + 0x80], rbp
cmp dword [rsp + 0x30], 0
je 0x40c298
call fcn.004221e0
test r15d, r15d
je 0x40c298
lea rdx, [rbx + 8]
lea ecx, [rdi - 1]
call fcn.00422e30
mov rbx, qword [rsp + 0xe8]
test rbx, rbx
je 0x40c28d
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0xd
call fcn.004279e0
int3
call fcn.0041e040
lea rdx, [rbx + 8]
lea ecx, [rdi - 1]
call fcn.0040f390
mov edi, eax
lea rcx, [rsp + 0x210]
call fcn.004029e0
call fcn.0041e130
mov qword [0x0044e5a8], r14
mov qword [0x0044e5b0], r14
mov rbx, qword [rsp + 0xe8]
test rbx, rbx
je 0x40c2f0
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov qword [rsp + 0x100], rsi
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x108], r14
mov dword [rsp + 0x110], r14d
mov dword [rsp + 0x118], r14d
test rcx, rcx
je 0x40c322
call fcn.00425490
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0x120], rsi
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x128], r14
mov dword [rsp + 0x130], r14d
mov dword [rsp + 0x138], r14d
test rcx, rcx
je 0x40c35c
call fcn.00425490
mov qword [rsp + 0x120], rbp
mov qword [rsp + 0x38], rsi
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x50], r14d
test rcx, rcx
je 0x40c387
call fcn.00425490
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0xa0], rsi
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xa8], r14
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xb8], r14d
test rcx, rcx
je 0x40c3be
call fcn.00425490
mov qword [rsp + 0xa0], rbp
lea rcx, [rsp + 0x3a0]
call fcn.00421620
nop
mov qword [rsp + 0xc0], rsi
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
mov dword [rsp + 0xd0], r14d
mov dword [rsp + 0xd8], r14d
test rcx, rcx
je 0x40c406
call fcn.00425490
mov qword [rsp + 0xc0], rbp
lea rcx, [rsp + 0x210]
call fcn.004029e0
nop
mov qword [rsp + 0x230], rsi
mov rcx, qword [rsp + 0x238]
mov qword [rsp + 0x238], r14
mov dword [rsp + 0x240], r14d
mov dword [rsp + 0x248], r14d
test rcx, rcx
je 0x40c44e
call fcn.00425490
mov qword [rsp + 0x230], rbp
lea rax, [0x0043d618]
mov qword [rsp + 0x210], rax
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x218], r14
mov dword [rsp + 0x220], r14d
mov dword [rsp + 0x228], r14d
test rcx, rcx
je 0x40c48f
call fcn.00425490
lea rax, [0x0043d5e8]
mov qword [rsp + 0x210], rax
lea rcx, [rsp + 0x2f0]
call fcn.00411c20
mov eax, edi
mov rcx, qword [rsp + 0x5d0]
call fcn.0043c500
mov rbx, qword [rsp + 0x630]
mov rbp, qword [rsp + 0x638]
mov rsi, qword [rsp + 0x610]
mov rdi, qword [rsp + 0x608]
mov r12, qword [rsp + 0x600]
mov r13, qword [rsp + 0x5f8]
mov r14, qword [rsp + 0x5f0]
mov r15, qword [rsp + 0x5e8]
add rsp, 0x618
ret