Function at 0x4120b0
Capabilities:
Check mutex on windows
Resolve function by parsing pe exports
Set current directory

Disassembly:
mov rax, rsp
sub rsp, 0x668
mov qword [rsp + 0x330], 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 [0x0046b048]
mov qword [rsp + 0x620], rax
mov r15, rdx
mov dword [rsp + 0x30], ecx
lea rdx, [0x00453d4c]
xor ecx, ecx
call fcn.0042dcd0
mov edx, 1
lea rcx, [rsp + 0x340]
call fcn.0041f220
nop
lea rcx, [rsp + 0x1e0]
call fcn.004098c0
nop
lea rdx, [section..SHMMESS]
lea rcx, [rsp + 0x3f0]
call fcn.004279d0
nop
lea rax, [rsp + 0x340]
mov qword [0x0046cca8], rax
lea rax, [rsp + 0x1e0]
mov qword [0x0046ccb0], rax
lea rax, [rsp + 0x3f0]
mov qword [0x0046ccb8], rax
xor eax, eax
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x80], 8
lea rcx, [rsp + 0x80]
call qword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
lea rdx, [rsp + 0x158]
lea rcx, [rsp + 0x340]
call fcn.00421100
nop
lea rbp, [0x00453650]
xor r12d, r12d
lea r13, [0x00453630]
cmp dword [rsp + 0x168], r12d
je 0x41222d
lea rdx, [rsp + 0x198]
lea rcx, [rsp + 0x340]
call fcn.004045d0
nop
mov rdx, rax
lea rcx, [rsp + 0x158]
call fcn.0040e910
nop
mov qword [rsp + 0x198], rbp
mov rcx, qword [rsp + 0x1a0]
mov qword [rsp + 0x1a0], r12
mov dword [rsp + 0x1a8], r12d
mov dword [rsp + 0x1b0], r12d
test rcx, rcx
je 0x412220
call fcn.0042a7a0
mov qword [rsp + 0x198], r13
jmp 0x4122c7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
mov edx, 0x64
call qword [sym.imp.USER32.dll_LoadBitmapA]
mov rbx, rax
test rax, rax
je 0x4122c7
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x340]
call fcn.0040cd40
nop
mov edx, dword [rsp + 0xf8]
lea rcx, [rsp + 0xe8]
mov r8, qword [rsp + 0xe8]
call qword [r8 + 8]
mov rdx, qword [rsp + 0xf0]
mov rcx, rbx
call fcn.00425c30
nop
mov qword [rsp + 0xe8], rbp
mov rcx, qword [rsp + 0xf0]
mov qword [rsp + 0xf0], r12
mov dword [rsp + 0xf8], r12d
mov dword [rsp + 0x100], r12d
test rcx, rcx
je 0x4122bf
call fcn.0042a7a0
mov qword [rsp + 0xe8], r13
lea rdx, [rsp + 0x108]
mov rcx, qword [0x0046cca8]
call fcn.0040da20
nop
mov edx, dword [rsp + 0x118]
test edx, edx
jle 0x4123a4
lea rcx, [rsp + 0x108]
mov rax, qword [rsp + 0x108]
call qword [rax + 8]
mov rdi, qword [rsp + 0x110]
lea rdx, [rsp + 0x178]
mov rcx, qword [0x0046cca8]
call fcn.0040dfa0
mov rbx, rax
mov r8, qword [rax]
mov edx, dword [rax + 0x10]
mov rcx, rax
call qword [r8 + 8]
mov r9d, 0x104
lea r8, [rsp + 0x510]
mov rdx, rdi
mov rcx, qword [rbx + 8]
call fcn.0040bc80
mov ebx, eax
mov qword [rsp + 0x178], rbp
mov rcx, qword [rsp + 0x180]
mov qword [rsp + 0x180], r12
mov dword [rsp + 0x188], r12d
mov dword [rsp + 0x190], r12d
test rcx, rcx
je 0x412378
call fcn.0042a7a0
mov qword [rsp + 0x178], r13
lea eax, [rbx - 1]
cmp eax, 0x102
ja 0x412398
lea rcx, [rsp + 0x510]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov rcx, qword [0x0046cca8]
call fcn.00416a60
lea rdx, [rsp + 0xa8]
mov rcx, qword [0x0046cca8]
call fcn.0040d800
nop
mov edx, dword [rsp + 0xb8]
test edx, edx
je 0x4123eb
lea rcx, [rsp + 0xa8]
mov rax, qword [rsp + 0xa8]
call qword [rax + 8]
mov rdx, qword [rsp + 0xb0]
lea rcx, [0x0046cd30]
call fcn.00427430
lea rdx, [rsp + 0xc8]
mov rcx, qword [0x0046cca8]
call fcn.0040d5e0
nop
mov edx, dword [rsp + 0xd8]
test edx, edx
je 0x412432
lea rcx, [rsp + 0xc8]
mov rax, qword [rsp + 0xc8]
call qword [rax + 8]
mov rdx, qword [rsp + 0xd0]
lea rcx, [0x0046cd30]
call fcn.00427360
mov edx, dword [rsp + 0xb8]
lea rcx, [rsp + 0xa8]
mov rax, qword [rsp + 0xa8]
call qword [rax + 8]
mov r11, qword [rsp + 0xb0]
mov qword [rsp + 0x248], r11
mov ecx, r12d
mov dword [rsp + 0x250], r12d
test r11, r11
je 0x412484
cmp byte [r11], cl
je 0x412484
inc ecx
movsxd rax, ecx
cmp byte [rax + r11], 0
jne 0x412471
mov dword [rsp + 0x250], ecx
mov eax, ecx
mov edi, dword [rsp + 0xd8]
cmp edi, ecx
cmovl eax, edi
mov r8d, r12d
mov r9, r12
movsxd rbx, eax
mov rsi, qword [rsp + 0xd0]
test eax, eax
jle 0x4124cc
mov rdx, rsi
mov r10, r11
sub r10, rsi
movzx eax, byte [r10 + rdx]
cmp byte [rdx], al
jne 0x4124c7
inc r8d
inc r9
inc rdx
cmp r9, rbx
jl 0x4124b0
test r8d, r8d
js 0x4124db
cmp r8d, edi
jge 0x4124db
movsxd rax, r8d
movzx r9d, byte [rax + rsi]
jmp 0x4124de
xor r9b, r9b
test r8d, r8d
js 0x4124f2
cmp r8d, ecx
jge 0x4124f2
movsxd rax, r8d
movzx edx, byte [rax + r11]
jmp 0x4124f4
xor dl, dl
movsx ecx, r9b
movsx eax, dl
sub ecx, eax
mov qword [rsp + 0x240], r13
mov eax, r12d
sete al
mov dword [0x0046cca0], eax
mov dword [rsp + 0x3c], r12d
lea rdx, [rsp + 0x1b8]
lea rcx, [rsp + 0x340]
call fcn.00403240
mov rbx, rax
mov r8, qword [rax]
mov edx, dword [rax + 0x10]
mov rcx, rax
call qword [r8 + 8]
lea r8, [rsp + 0x3c]
lea rdx, [0x00454774]
mov rcx, qword [rbx + 8]
call fcn.0042a690
nop
mov qword [rsp + 0x1b8], rbp
mov rcx, qword [rsp + 0x1c0]
mov qword [rsp + 0x1c0], r12
mov dword [rsp + 0x1c8], r12d
mov dword [rsp + 0x1d0], r12d
test rcx, rcx
je 0x412583
call fcn.0042a7a0
mov qword [rsp + 0x1b8], r13
lea rcx, [rsp + 0x4a8]
lea r13, [0x00400000]
mov rax, qword [r13 + 0x54758]
mov qword [rcx], rax
mov rax, qword [r13 + 0x54760]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x54768]
mov qword [rcx + 0x10], rax
movzx eax, byte [r13 + 0x54770]
mov byte [rcx + 0x18], al
lea rcx, [rsp + 0x4a8]
lea rbx, [0x0046cd80]
mov rdx, rbx
mov edi, 0x19
mov r8, rdi
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec r8
jne 0x4125e0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042c040
test rax, rax
je 0x412640
movzx eax, byte [rbx]
test al, al
js 0x412613
movzx eax, byte [rbx]
cmp al, 0x20
jge 0x412613
mov al, 0x2e
jmp 0x412616
movzx eax, byte [rbx]
movsx edx, al
lea rcx, [0x00454120]
call fcn.0042c790
inc rbx
dec rdi
jne 0x412601
lea rcx, [0x0045411c]
call fcn.0042c790
lea rbx, [0x0046cd80]
cmp byte [0x0046cd80], 0
je 0x412700
mov ecx, dword [rsp + 0x3c]
call fcn.00421620
test eax, eax
jne 0x412700
lea edx, [rax + 9]
lea rcx, [rsp + 0x258]
call fcn.0040f3f0
nop
mov edx, 0xa
lea rcx, [rsp + 0x2f8]
call fcn.0040f3f0
nop
mov edx, dword [rsp + 0x308]
lea rcx, [rsp + 0x2f8]
mov rax, qword [rsp + 0x2f8]
call qword [rax + 8]
mov rbx, qword [rsp + 0x300]
mov edx, dword [rsp + 0x268]
lea rcx, [rsp + 0x258]
mov rax, qword [rsp + 0x258]
call qword [rax + 8]
mov rcx, qword [0x0046d448]
call fcn.00425980
mov rcx, rax
mov r9d, 0x50030
mov r8, rbx
mov rdx, qword [rsp + 0x260]
call qword [sym.imp.USER32.dll_MessageBoxA]
mov edx, 0x64
mov rcx, qword [0x0046d448]
call fcn.00425920
mov ecx, 9
call fcn.0042cef0
nop
lea rcx, [rsp + 0x490]
mov rax, qword [r13 + 0x54740]
mov qword [rcx], rax
mov rax, qword [r13 + 0x54748]
mov qword [rcx + 8], rax
mov eax, dword [r13 + 0x54750]
mov dword [rcx + 0x10], eax
movzx eax, word [r13 + 0x54754]
mov word [rcx + 0x14], ax
lea rcx, [rsp + 0x4e8]
mov rax, qword [r13 + 0x54720]
mov qword [rcx], rax
mov rax, qword [r13 + 0x54728]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x54730]
mov qword [rcx + 0x10], rax
movzx eax, word [r13 + 0x54738]
mov word [rcx + 0x18], ax
movzx eax, byte [r13 + 0x5473a]
mov byte [rcx + 0x1a], al
lea rcx, [rsp + 0x4c8]
mov rax, qword [r13 + 0x54700]
mov qword [rcx], rax
mov rax, qword [r13 + 0x54708]
mov qword [rcx + 8], rax
mov rax, qword [r13 + 0x54710]
mov qword [rcx + 0x10], rax
movzx eax, word [r13 + 0x54718]
mov word [rcx + 0x18], ax
lea rcx, [rsp + 0x4e8]
mov rdx, rbx
mov edi, 0x1b
mov r8, rdi
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec r8
jne 0x4127c0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042c040
test rax, rax
je 0x412820
movzx eax, byte [rbx]
test al, al
js 0x4127f3
movzx eax, byte [rbx]
cmp al, 0x20
jge 0x4127f3
mov al, 0x2e
jmp 0x4127f6
movzx eax, byte [rbx]
movsx edx, al
lea rcx, [0x00454120]
call fcn.0042c790
inc rbx
dec rdi
jne 0x4127e1
lea rcx, [0x0045411c]
call fcn.0042c790
lea rbx, [0x0046cd80]
mov rbp, qword [0x0046cd80]
lea rcx, [rsp + 0x4c8]
mov rdx, rbx
mov edi, 0x1a
mov r8, rdi
nop
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rdx
inc rcx
dec r8
jne 0x412840
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042c040
test rax, rax
je 0x4128a0
movzx eax, byte [rbx]
test al, al
js 0x412873
movzx eax, byte [rbx]
cmp al, 0x20
jge 0x412873
mov al, 0x2e
jmp 0x412876
movzx eax, byte [rbx]
movsx edx, al
lea rcx, [0x00454120]
call fcn.0042c790
inc rbx
dec rdi
jne 0x412861
lea rcx, [0x0045411c]
call fcn.0042c790
lea rbx, [0x0046cd80]
mov esi, dword [0x0046cd80]
lea rdx, [rsp + 0x490]
mov r8, rbx
mov edi, 0x16
mov r9, rdi
nop
nop
movzx eax, byte [rdx]
mov byte [r8], al
inc r8
inc rdx
dec r9
jne 0x4128c0
lea rcx, str._JAR2EXE_BINARY_DEBUG_
call fcn.0042c040
test rax, rax
je 0x412921
movzx eax, byte [rbx]
test al, al
js 0x4128f4
movzx eax, byte [rbx]
cmp al, 0x20
jge 0x4128f4
mov al, 0x2e
jmp 0x4128f7
movzx eax, byte [rbx]
movsx edx, al
lea rcx, [0x00454120]
call fcn.0042c790
inc rbx
dec rdi
jne 0x4128e2
lea rcx, [0x0045411c]
call fcn.0042c790
lea rbx, [0x0046cd80]
cmp byte [0x0046cd80], 0
je 0x4129e6
mov r8d, esi
mov rdx, rbp
mov rcx, rbx
call fcn.0040f280
test eax, eax
jne 0x4129e6
lea edx, [rax + 0xb]
lea rcx, [rsp + 0x278]
call fcn.0040f3f0
nop
mov edx, 0xa
lea rcx, [rsp + 0x2b8]
call fcn.0040f3f0
nop
mov edx, dword [rsp + 0x2c8]
lea rcx, [rsp + 0x2b8]
mov rax, qword [rsp + 0x2b8]
call qword [rax + 8]
mov rbx, qword [rsp + 0x2c0]
mov edx, dword [rsp + 0x288]
lea rcx, [rsp + 0x278]
mov rax, qword [rsp + 0x278]
call qword [rax + 8]
mov rcx, qword [0x0046d448]
call fcn.00425980
mov rcx, rax
mov r9d, 0x50030
mov r8, rbx
mov rdx, qword [rsp + 0x280]
call qword [sym.imp.USER32.dll_MessageBoxA]
mov edx, 0x64
mov rcx, qword [0x0046d448]
call fcn.00425920
mov ecx, 0xb
call fcn.0042cef0
nop
lea rdx, [rsp + 0x88]
mov rcx, qword [0x0046cca8]
call fcn.0040c9e0
nop
mov esi, r12d
nop
inc esi
movsxd rax, esi
cmp byte [rax + r13 + 0x53cc4], 0
jne 0x412a00
mov eax, esi
mov edx, dword [rsp + 0x98]
cmp edx, esi
cmovl eax, edx
mov ebp, r12d
mov rdi, r12
movsxd r13, eax
test eax, eax
jle 0x412a79
lea r14, [0x00400000]
movzx ecx, byte [rdi + r14 + 0x53cc4]
mov rax, qword [rsp + 0x90]
movzx r12d, byte [rax + rdi]
cmp r12b, cl
je 0x412a64
movsx ecx, cl
call fcn.0042a900
mov ebx, eax
movsx ecx, r12b
call fcn.0042a900
cmp eax, ebx
jne 0x412a6e
inc ebp
inc rdi
cmp rdi, r13
jl 0x412a32
test ebp, ebp
js 0x412a8f
mov edx, dword [rsp + 0x98]
cmp ebp, edx
jge 0x412a96
movsxd rcx, ebp
mov rax, qword [rsp + 0x90]
movzx r9d, byte [rcx + rax]
jmp 0x412a99
mov edx, dword [rsp + 0x98]
xor r9b, r9b
test ebp, ebp
mov r14d, dword [rsp + 0x30]
js 0x412abb
cmp ebp, esi
jge 0x412abb
movsxd rax, ebp
lea r10, [0x00400000]
movzx r8d, byte [rax + r10 + 0x53cc4]
jmp 0x412ac5
xor r8b, r8b
lea r10, [0x00400000]
movsx ecx, r9b
movsx eax, r8b
sub ecx, eax
mov eax, 0
sete al
test eax, eax
je 0x412cfc
lea rdx, [rsp + 0x60]
mov rcx, qword [0x0046cca8]
call fcn.004045d0
nop
xor ecx, ecx
xor eax, eax
mov ebx, dword [rsp + 0x70]
test ebx, ebx
jle 0x412b1c
nop
mov rdx, qword [rsp + 0x68]
cmp byte [rdx + rax], 0x3a
jne 0x412b13
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x70]
inc ecx
inc rax
cmp ecx, ebx
jl 0x412b00
xor ecx, ecx
xor eax, eax
test ebx, ebx
jle 0x412b40
mov rdx, qword [rsp + 0x68]
cmp byte [rdx + rax], 0x5c
jne 0x412b37
mov byte [rdx + rax], 0x2e
mov ebx, dword [rsp + 0x70]
inc ecx
inc rax
cmp ecx, ebx
jl 0x412b24
lea rsi, str..j2e
mov qword [rsp + 0x320], rsi
lea rax, [0x00453660]
mov qword [rsp + 0x318], rax
xor edi, edi
inc edi
movsxd rax, edi
cmp byte [rax + rsi], 0
jne 0x412b60
mov dword [rsp + 0x328], edi
lea edx, [rdi + rbx]
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x60]
call qword [rax + 8]
cmp ebx, ebx
jge 0x412ba7
movsxd rax, ebx
mov r8, qword [rsp + 0x68]
lea rdx, [rax + r8]
movsxd rcx, edi
add rcx, rax
add rcx, r8
mov eax, ebx
sub eax, ebx
movsxd r8, eax
call fcn.0042a950
movsxd r8, edi
movsxd rcx, ebx
add rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.0042a950
nop
mov edx, dword [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov rax, qword [rsp + 0x60]
call qword [rax + 8]
mov r8, qword [rsp + 0x68]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
test rax, rax
jne 0x412bf9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.CreateMutex_error:__d_n
call fcn.0042c790
jmp 0x412c1b
mov edx, 0x64
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x412cbf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, 0xd
lea rcx, [rsp + 0x2d8]
call fcn.0040f3f0
nop
mov edx, 0xa
lea rcx, [rsp + 0x298]
call fcn.0040f3f0
nop
mov edx, dword [rsp + 0x2a8]
lea rcx, [rsp + 0x298]
mov rax, qword [rsp + 0x298]
call qword [rax + 8]
mov rbx, qword [rsp + 0x2a0]
mov edx, dword [rsp + 0x2e8]
lea rcx, [rsp + 0x2d8]
mov rax, qword [rsp + 0x2d8]
call qword [rax + 8]
mov rcx, qword [0x0046d448]
call fcn.00425980
mov rcx, rax
mov r9d, 0x50030
mov r8, rbx
mov rdx, qword [rsp + 0x2e0]
call qword [sym.imp.USER32.dll_MessageBoxA]
mov edx, 0x64
mov rcx, qword [0x0046d448]
call fcn.00425920
mov ecx, 0xb
call fcn.0042cef0
nop
lea rax, [0x00453650]
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x68], 0
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x78], 0
test rcx, rcx
je 0x412db6
call fcn.0042a7a0
jmp 0x412db6
xor esi, esi
nop
inc esi
movsxd rax, esi
cmp byte [rax + r10 + 0x546d4], 0
jne 0x412d00
mov eax, esi
cmp edx, esi
cmovl eax, edx
xor ebp, ebp
xor edi, edi
movsxd r13, eax
test eax, eax
jle 0x412d6f
movzx r12d, byte [rdi + r10 + 0x546d4]
mov rax, qword [rsp + 0x90]
movzx ecx, byte [rax + rdi]
cmp cl, r12b
je 0x412d5a
movsx ecx, cl
call fcn.0042a900
mov ebx, eax
movsx ecx, r12b
call fcn.0042a900
cmp ebx, eax
jne 0x412d64
lea r10, [0x00400000]
inc ebp
inc rdi
cmp rdi, r13
jl 0x412d22
test ebp, ebp
js 0x412d85
mov edx, dword [rsp + 0x98]
cmp ebp, edx
jge 0x412d85
movsxd rcx, ebp
mov rax, qword [rsp + 0x90]
movzx r8d, byte [rcx + rax]
jmp 0x412d88
xor r8b, r8b
test ebp, ebp
js 0x412da4
cmp ebp, esi
jge 0x412da4
movsxd rax, ebp
lea rcx, [0x00400000]
movzx edx, byte [rax + rcx + 0x546d4]
jmp 0x412da6
xor dl, dl
movsx ecx, r8b
movsx eax, dl
sub ecx, eax
jne 0x412db6
call fcn.004284a0
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x340]
call fcn.0040c830
nop
xor esi, esi
lea rcx, [0x00400000]
nop
nop
nop
nop
inc esi
movsxd rax, esi
cmp byte [rax + rcx + 0x53cc4], 0
jne 0x412de0
mov eax, esi
mov edx, dword [rsp + 0x50]
cmp edx, esi
cmovl eax, edx
xor ebp, ebp
xor edi, edi
movsxd r13, eax
test eax, eax
jle 0x412e57
nop
nop
nop
movzx ecx, byte [rdi + rcx + 0x53cc4]
mov rax, qword [rsp + 0x48]
movzx r12d, byte [rax + rdi]
cmp r12b, cl
je 0x412e3e
movsx ecx, cl
call fcn.0042a900
mov ebx, eax
movsx ecx, r12b
call fcn.0042a900
cmp eax, ebx
jne 0x412e4f
inc ebp
inc rdi
cmp rdi, r13
lea rcx, [0x00400000]
jl 0x412e10
test ebp, ebp
js 0x412e6a
mov edx, dword [rsp + 0x50]
cmp ebp, edx
jge 0x412e6e
movsxd rcx, ebp
mov rax, qword [rsp + 0x48]
movzx r9d, byte [rcx + rax]
jmp 0x412e71
mov edx, dword [rsp + 0x50]
xor r9b, r9b
test ebp, ebp
js 0x412e8e
cmp ebp, esi
jge 0x412e8e
movsxd rax, ebp
lea r10, [0x00400000]
movzx r8d, byte [rax + r10 + 0x53cc4]
jmp 0x412e98
xor r8b, r8b
lea r10, [0x00400000]
movsx ecx, r9b
movsx eax, r8b
lea r8, [0x004546d0]
sub ecx, eax
je 0x412f9d
xor esi, esi
nop
nop
nop
nop
inc esi
movsxd rax, esi
cmp byte [rax + r10 + 0x546c8], 0
jne 0x412ec0
mov eax, esi
cmp edx, esi
cmovl eax, edx
xor ebp, ebp
xor edi, edi
movsxd r13, eax
test eax, eax
jle 0x412f2a
movzx ecx, byte [rdi + r10 + 0x546c8]
mov rax, qword [rsp + 0x48]
movzx r12d, byte [rax + rdi]
cmp r12b, cl
je 0x412f18
movsx ecx, cl
call fcn.0042a900
mov ebx, eax
movsx ecx, r12b
call fcn.0042a900
cmp eax, ebx
jne 0x412f22
lea r10, [0x00400000]
inc ebp
inc rdi
cmp rdi, r13
jl 0x412ee2
test ebp, ebp
js 0x412f3d
mov edx, dword [rsp + 0x50]
cmp ebp, edx
jge 0x412f41
movsxd rcx, ebp
mov rax, qword [rsp + 0x48]
movzx r9d, byte [rcx + rax]
jmp 0x412f44
mov edx, dword [rsp + 0x50]
xor r9b, r9b
test ebp, ebp
js 0x412f61
cmp ebp, esi
jge 0x412f61
movsxd rax, ebp
lea rcx, [0x00400000]
movzx r8d, byte [rax + rcx + 0x546c8]
jmp 0x412f64
xor r8b, r8b
movsx ecx, r9b
movsx eax, r8b
sub ecx, eax
je 0x412f96
lea rdx, [0x004546d0]
lea rcx, [rsp + 0x40]
call fcn.00401c50
test eax, eax
jne 0x41308d
mov edx, dword [rsp + 0x50]
lea r8, [0x004546d0]
jmp 0x412f9d
lea r8, [0x004546d0]
xor esi, esi
nop
inc esi
movsxd rax, esi
cmp byte [rax + r8], 0
jne 0x412fa0
mov eax, esi
cmp edx, esi
cmovl eax, edx
xor ebp, ebp
xor edi, edi
movsxd r13, eax
test eax, eax
jle 0x413004
nop
movzx ecx, byte [rdi + r8]
mov rax, qword [rsp + 0x48]
movzx r12d, byte [rax + rdi]
cmp r12b, cl
je 0x412ff2
movsx ecx, cl
call fcn.0042a900
mov ebx, eax
movsx ecx, r12b
call fcn.0042a900
cmp eax, ebx
jne 0x412ffc
lea r8, [0x004546d0]
inc ebp
inc rdi
cmp rdi, r13
jl 0x412fc0
test ebp, ebp
js 0x413017
mov edx, dword [rsp + 0x50]
cmp ebp, edx
jge 0x413017
movsxd rcx, ebp
mov rax, qword [rsp + 0x48]
movzx r8d, byte [rcx + rax]
jmp 0x41301a
xor r8b, r8b
test ebp, ebp
js 0x413032
cmp ebp, esi
jge 0x413032
movsxd rax, ebp
lea rcx, [0x004546d0]
movzx edx, byte [rax + rcx]
jmp 0x413034
xor dl, dl
movsx ecx, r8b
movsx eax, dl
sub ecx, eax
neg ecx
sbb r9d, r9d
add r9d, 2
mov r8, r15
mov edx, r14d
lea rcx, [0x0046cce0]
call fcn.00429db0
lea rdx, [0x0046b020]
lea rcx, [0x0046cce0]
call fcn.00429390
mov r14d, dword [0x0046b030]
mov edx, r14d
lea rcx, [0x0046b020]
mov rax, qword [0x0046b020]
call qword [rax + 8]
mov r15, qword [0x0046b028]
lea rsi, [0x00453650]
mov qword [rsp + 0x40], rsi
mov rcx, qword [rsp + 0x48]
xor edi, edi
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x58], edi
test rcx, rcx
je 0x4130b7
call fcn.0042a7a0
xor eax, eax
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rax
lea eax, [r14 - 1]
mov dword [rsp + 0x128], eax
lea rax, [r15 + 8]
mov qword [rsp + 0x130], rax
lea rax, [0x0040c230]
mov qword [rsp + 0x138], rax
mov dword [rsp + 0x38], edi
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x10000
lea r9, [rsp + 0x128]
lea r8, [0x00412030]
xor edx, edx
xor ecx, ecx
call fcn.0042c960
mov rbx, rax
test rax, rax
jne 0x41316b
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
lea r9, [rsp + 0x128]
lea r8, [0x00412030]
xor edx, edx
xor ecx, ecx
call fcn.0042c960
mov rbx, rax
test rax, rax
je 0x413196
mov edx, 0xffffffff
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [rsp + 0x38]
jmp 0x4131dc
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x140]
mov r8, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x128]
call fcn.0040ff70
mov ebx, eax
mov dword [rsp + 0x150], eax
mov rcx, qword [0x0046ccb0]
call fcn.004091f0
mov qword [0x0046cca8], rdi
mov qword [0x0046ccb0], rdi
mov qword [rsp + 0x88], rsi
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x90], rdi
mov dword [rsp + 0x98], edi
mov dword [rsp + 0xa0], edi
test rcx, rcx
je 0x41321a
call fcn.0042a7a0
lea rbp, [0x00453630]
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0xc8], rsi
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rdi
mov dword [rsp + 0xd8], edi
mov dword [rsp + 0xe0], edi
test rcx, rcx
je 0x413259
call fcn.0042a7a0
mov qword [rsp + 0xc8], rbp
mov qword [rsp + 0xa8], rsi
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], rdi
mov dword [rsp + 0xb8], edi
mov dword [rsp + 0xc0], edi
test rcx, rcx
je 0x413291
call fcn.0042a7a0
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0x108], rsi
mov rcx, qword [rsp + 0x110]
mov qword [rsp + 0x110], rdi
mov dword [rsp + 0x118], edi
mov dword [rsp + 0x120], edi
test rcx, rcx
je 0x4132c9
call fcn.0042a7a0
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x158], rsi
mov rcx, qword [rsp + 0x160]
mov qword [rsp + 0x160], rdi
mov dword [rsp + 0x168], edi
mov dword [rsp + 0x170], edi
test rcx, rcx
je 0x413301
call fcn.0042a7a0
mov qword [rsp + 0x158], rbp
lea rcx, [rsp + 0x3f0]
call fcn.00427930
nop
lea rcx, [rsp + 0x1e0]
call fcn.004091f0
nop
mov qword [rsp + 0x200], rsi
mov rcx, qword [rsp + 0x208]
mov qword [rsp + 0x208], rdi
mov dword [rsp + 0x210], edi
mov dword [rsp + 0x218], edi
test rcx, rcx
je 0x413355
call fcn.0042a7a0
mov qword [rsp + 0x200], rbp
lea rax, [0x00453668]
mov qword [rsp + 0x1e0], rax
mov rcx, qword [rsp + 0x1e8]
mov qword [rsp + 0x1e8], rdi
mov dword [rsp + 0x1f0], edi
mov dword [rsp + 0x1f8], edi
test rcx, rcx
je 0x413394
call fcn.0042a7a0
lea rax, [0x00453638]
mov qword [rsp + 0x1e0], rax
lea rcx, [rsp + 0x340]
call fcn.004160d0
mov eax, ebx
mov rcx, qword [rsp + 0x620]
call fcn.00452890
mov rbx, qword [rsp + 0x680]
mov rbp, qword [rsp + 0x688]
mov rsi, qword [rsp + 0x660]
mov rdi, qword [rsp + 0x658]
mov r12, qword [rsp + 0x650]
mov r13, qword [rsp + 0x648]
mov r14, qword [rsp + 0x640]
mov r15, qword [rsp + 0x638]
add rsp, 0x668
ret