Function at 0x437190
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x2b8
mov rbp, rsp
mov qword [rbp + 0x48], rcx
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x88], 0
mov qword [rbp + 0x78], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x80], 0
nop
xor rdi, rdi
mov rax, qword [rbp + 0x48]
mov rcx, qword [rax + 0x18]
call fcn.0043da10
mov rbx, rax
test rbx, rbx
je 0x437219
mov rax, rbx
mov rcx, rax
call fcn.0040aa60
mov r13d, eax
jmp 0x43721c
xor r13, r13
cmp r13d, 0x104
jl 0x43723d
mov rax, qword [0x00489ad8]
mov dword [rax], 0x233f
xor rax, rax
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rax, qword [0x004895e8]
cmp byte [rax], 0
je 0x437272
mov rcx, rbx
lea rdx, [0x00437bc8]
mov r8d, 4
call fcn.0041dbe0
test eax, eax
jne 0x437272
lea rcx, [0x00437bd2]
call fcn.00432270
mov rbx, rax
lea rcx, [rbp + 0x9a]
xor rdx, rdx
mov r8d, 0x104
call fcn.00429f00
lea rcx, [rbp + 0x9a]
mov rdx, rbx
call fcn.00429d70
lea rcx, [rbp + 0x9a]
mov dx, 0x2f
call fcn.00435390
mov word [rbp + 0x2aa], 0x5c
mov word [rbp + 0x2ac], 0x3a
mov word [rbp + 0x2ae], 0
lea rcx, [rbp + 0x9a]
lea rdx, [rbp + 0x2aa]
call fcn.00429db0
cmp eax, r13d
setl al
mov byte [rbp + 0x2f], al
mov word [rbp + 0x2ac], 0
movzx rax, byte [rbp + 0x2f]
test al, al
je 0x43733c
lea rcx, [rbp + 0x9a]
mov dx, 0x5c
call fcn.00429ce0
mov rbx, rax
test rbx, rbx
jne 0x437336
xor rbx, rbx
lea rax, [rbp + 0x9a]
test rax, rax
je 0x437336
lea rax, [rbp + 0x9a]
jmp 0x43732f
cmp word [rax], 0x3a
jne 0x43732b
mov rbx, rax
jmp 0x437335
add rax, 2
cmp word [rax], 0
jne 0x437320
nop
add rbx, 2
jmp 0x437343
lea rbx, [rbp + 0x9a]
test rbx, rbx
je 0x43736e
mov rcx, rbx
lea rdx, [0x00437be2]
call fcn.0041dab0
test eax, eax
je 0x43736e
mov rcx, rbx
lea rdx, [0x00437be6]
call fcn.0041dab0
test eax, eax
jne 0x4373b6
mov rax, qword [0x004895e8]
cmp byte [rax], 0
je 0x43739e
mov rcx, qword [rbp + 0x20]
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x43739e
test eax, 0x10
je 0x43739e
mov eax, 5
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rax, qword [0x00489ad8]
mov dword [rax], 0x2331
xor rax, rax
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov ecx, 0x410
call fcn.0042ab90
mov rsi, rax
test rsi, rsi
jne 0x4373e4
mov rax, qword [0x00489ad8]
mov dword [rax], 8
mov eax, 3
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp + 0x9a]
call fcn.00429d70
lea rax, [rbp + 0x9a]
test rax, rax
je 0x437414
lea rax, [rbp + 0x9a]
mov rcx, rax
call fcn.0040aa60
mov r13d, eax
jmp 0x437417
xor r13, r13
mov rax, rbx
mov rcx, rax
call fcn.0040aa60
movsxd r13, r13d
mov eax, eax
neg rax
lea rax, [r13 + rax]
mov rcx, qword [rbp + 0x20]
mov word [rcx + rax*2], 0
lea rdx, [0x00437be2]
call fcn.00429d90
mov rcx, rsi
mov rdx, qword [rbp + 0x20]
mov r8d, 0x208
call fcn.00434480
test eax, eax
je 0x4374a4
mov rax, qword [0x004895e8]
cmp byte [rax], 0
je 0x43748c
mov rcx, qword [rbp + 0x20]
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
je 0x43748c
test eax, 0x10
je 0x43748c
mov eax, 5
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rax, qword [0x00489ad8]
mov dword [rax], 0x2331
xor rax, rax
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, rsi
call fcn.00429f20
cmp word [rax], 0x5c
je 0x4374c1
mov rcx, rsi
lea rdx, [0x00437bec]
call fcn.00429d90
mov rcx, rsi
mov rdx, rbx
call fcn.00429d90
test rsi, rsi
je 0x4374de
mov rax, rsi
mov rcx, rax
call fcn.0040aa60
jmp 0x4374e1
xor rax, rax
mov rcx, rsi
mov edx, eax
add edx, 1
add edx, edx
call fcn.0042ac90
mov rsi, rax
mov rcx, rsi
mov dx, 0x5c
call fcn.00429ce0
mov qword [rbp + 0x30], rax
mov word [rax], 0
add rax, 2
mov qword [rbp + 0x30], rax
movzx rax, byte [rbp + 0x2f]
test al, al
jne 0x437528
lea rcx, [0x00437bf0]
call fcn.00432270
mov rdi, rax
test rsi, rsi
je 0x43753c
mov rax, rsi
mov rcx, rax
call fcn.0040aa60
mov ebx, eax
jmp 0x43753f
xor rbx, rbx
test rdi, rdi
je 0x437551
mov rax, rdi
mov rcx, rax
call fcn.0040aa60
jmp 0x437554
xor rax, rax
mov ecx, ebx
add ecx, eax
add ecx, 4
add ecx, ecx
call fcn.0042ab90
mov qword [rbp + 0x38], rax
mov rax, qword [rbp + 0x38]
test rax, rax
jne 0x43758a
mov rax, qword [0x00489ad8]
mov dword [rax], 8
mov eax, 3
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, qword [rbp + 0x38]
lea rdx, [0x00437bfa]
call fcn.00429d90
mov rcx, qword [rbp + 0x38]
mov rdx, rsi
call fcn.00429d90
mov rcx, qword [rbp + 0x38]
lea rdx, [0x00437bfa]
call fcn.00429d90
movzx rax, byte [rbp + 0x2f]
test al, al
jne 0x4375db
mov rcx, qword [rbp + 0x38]
lea rdx, [0x00437bfe]
call fcn.00429d90
mov rcx, qword [rbp + 0x38]
mov rdx, rdi
call fcn.00429d90
mov rcx, qword [rbp + 0x38]
call fcn.004381f0
mov rcx, qword [rbp + 0x38]
lea rdx, [0x00437bfe]
mov r8d, 1
call fcn.004356f0
mov qword [rbp + 0x38], rax
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x437616
mov rax, qword [rbp + 0x30]
mov rcx, rax
call fcn.0040aa60
jmp 0x437619
xor rax, rax
mov r13d, eax
add r13d, 1
mov rax, qword [0x004895e8]
cmp byte [rax], 0
je 0x43763d
lea rcx, [0x00437c02]
call fcn.00432270
mov rbx, rax
jmp 0x437644
lea rbx, [0x00437c12]
mov rcx, rbx
call fcn.004381f0
mov rcx, rbx
lea rdx, [0x00437bfe]
mov r8d, 1
call fcn.004356f0
mov rbx, rax
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x43767e
mov rax, qword [rbp + 0x38]
mov rcx, rax
call fcn.0040aa60
mov esi, eax
jmp 0x437681
xor rsi, rsi
mov rcx, qword [rbp + 0x38]
call fcn.0043da10
mov rcx, qword [rbp + 0x38]
mov rdx, rax
call fcn.00429d70
mov rax, qword [rbp + 0x38]
test rax, rax
je 0x4376af
mov rax, qword [rbp + 0x38]
mov rcx, rax
call fcn.0040aa60
mov edi, eax
jmp 0x4376b2
xor rdi, rdi
mov rcx, qword [rbp + 0x38]
call fcn.00429f20
cmp word [rax], 0x5c
je 0x4376cc
mov r14b, 1
add esi, 1
add edi, 1
jmp 0x4376cf
xor r14, r14
mov rax, qword [rbp + 0x38]
cmp word [rax], 0
je 0x43771b
mov eax, edi
movsxd rcx, r13d
lea rax, [rax + rcx]
cmp rax, 0x104
jle 0x43771b
test r14b, r14b
je 0x437706
movsxd rsi, esi
add rsi, rsi
mov rax, qword [rbp + 0x38]
add rax, rsi
mov qword [rbp + 0x38], rax
jmp 0x437665
movsxd rsi, esi
mov rax, qword [rbp + 0x38]
lea rax, [rax + rsi*2 + 2]
mov qword [rbp + 0x38], rax
jmp 0x437665
mov rax, qword [rbp + 0x38]
cmp word [rax], 0
jne 0x43776d
movzx rax, byte [rbp + 0x2f]
test al, al
je 0x437755
mov rax, qword [0x00489ad8]
cmp dword [rax], 0
je 0x437746
mov rax, qword [0x00489ad8]
cmp dword [rax], 2
jne 0x437762
mov rax, qword [0x00489ad8]
mov dword [rax], 0x2331
jmp 0x437762
mov rax, qword [0x00489ad8]
mov dword [rax], 0x2331
xor rax, rax
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x38]
call fcn.00429d70
test r14b, r14b
je 0x437792
movsxd rsi, esi
add rsi, rsi
mov rax, qword [rbp + 0x38]
add rax, rsi
mov qword [rbp + 0x38], rax
jmp 0x4377a2
movsxd rsi, esi
mov rax, qword [rbp + 0x38]
lea rax, [rax + rsi*2 + 2]
mov qword [rbp + 0x38], rax
test r14b, r14b
je 0x4377b7
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp + 0x2aa]
call fcn.00429d90
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x30]
call fcn.00429d90
mov rcx, qword [rbp + 0x20]
call fcn.0043da10
mov rcx, qword [rbp + 0x20]
mov rdx, rax
call fcn.00429d70
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x4377f3
mov rax, qword [rbp + 0x20]
mov rcx, rax
call fcn.0040aa60
mov r14d, eax
jmp 0x4377f6
xor r14, r14
mov rax, qword [rbp + 0x20]
cmp word [rax + 2], 0x3a
jne 0x437816
mov rax, qword [rbp + 0x20]
movzx rcx, word [rax]
call fcn.0043d8c0
test al, al
je 0x437665
mov rcx, qword [rbp + 0x30]
mov dx, 0x2e
call fcn.00429ce0
mov rsi, rax
test rsi, rsi
je 0x437940
cmp word [rsi + 2], 0
je 0x437940
mov rcx, qword [rbp + 0x20]
mov dl, 1
call fcn.00435260
test al, al
jne 0x437866
movzx rax, byte [rbp + 0x2f]
test al, al
je 0x437924
mov rax, qword [0x00489ad8]
cmp dword [rax], 5
jne 0x437924
lea rcx, [rbp + 0x80]
mov rdx, qword [rbp + 0x20]
call fcn.0040b760
lea rcx, [rbp + 0x88]
mov rdx, qword [rbp + 0x80]
call fcn.0041d820
mov rcx, qword [rbp + 0x88]
call fcn.0040b6c0
mov rbx, rax
lea rcx, [rbp + 0x70]
call fcn.00429bb0
lea rcx, [rbp + 0x78]
mov rdx, qword [rbp + 0x70]
call fcn.0041d820
mov rcx, qword [rbp + 0x78]
call fcn.0040b6c0
mov rcx, rbx
mov rdx, rax
call fcn.0041dae0
test eax, eax
jne 0x4378d4
mov eax, 2
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, rsi
lea rdx, [0x00437c3a]
call fcn.0041dae0
test eax, eax
jne 0x4378f5
mov eax, 2
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rcx, rsi
lea rdx, [0x00437c44]
call fcn.0041dae0
test eax, eax
jne 0x437916
mov eax, 2
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov eax, 1
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rax, qword [0x00489ad8]
cmp dword [rax], 2
je 0x437940
mov rax, qword [0x00489ad8]
cmp dword [rax], 0
jne 0x437665
xor rax, rax
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x437968
mov rcx, qword [rbp + 0x30]
jmp 0x437961
cmp word [rcx], 0x2a
jne 0x43795d
mov rax, rcx
jmp 0x437967
add rcx, 2
cmp word [rcx], 0
jne 0x437952
nop
test rax, rax
je 0x437971
mov al, 1
jmp 0x43799f
xor rax, rax
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x437999
mov rcx, qword [rbp + 0x30]
jmp 0x437992
cmp word [rcx], 0x3f
jne 0x43798e
mov rax, rcx
jmp 0x437998
add rcx, 2
cmp word [rcx], 0
jne 0x437983
nop
test rax, rax
setne al
test al, al
je 0x4379bb
mov rax, qword [0x00489ad8]
mov dword [rax], 0x2331
xor rax, rax
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rsi, rbx
mov rcx, qword [rbp + 0x20]
mov edx, r14d
lea r8, [0x00437c4e]
xor r9, r9
call fcn.00437c60
test eax, eax
je 0x437b04
jmp 0x437af9
test rsi, rsi
je 0x4379f3
mov rax, rsi
mov rcx, rax
call fcn.0040aa60
jmp 0x4379f6
xor rax, rax
movsxd rcx, r13d
mov edx, edi
lea rcx, [rcx + rdx]
movsxd rax, eax
lea rax, [rcx + rax]
cmp rax, 0x104
jg 0x437aef
mov rcx, qword [rbp + 0x20]
mov edx, r14d
mov r8, rsi
mov r9b, 1
call fcn.00437c60
test eax, eax
je 0x437ad1
mov rcx, rsi
lea rdx, [0x00437c44]
call fcn.0041dae0
test eax, eax
je 0x437a53
mov rcx, rsi
lea rdx, [0x00437c3a]
call fcn.0041dae0
test eax, eax
jne 0x437a61
mov eax, 2
mov dword [rbp + 0x44], eax
jmp 0x437b76
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0x20]
call fcn.0040b760
lea rcx, [rbp + 0x68]
mov rdx, qword [rbp + 0x60]
call fcn.0041d820
mov rcx, qword [rbp + 0x68]
call fcn.0040b6c0
mov rbx, rax
lea rcx, [rbp + 0x50]
call fcn.00429bb0
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0x50]
call fcn.0041d820
mov rcx, qword [rbp + 0x58]
call fcn.0040b6c0
mov rcx, rbx
mov rdx, rax
call fcn.0041dae0
test eax, eax
jne 0x437ac3
mov eax, 2
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov eax, 1
mov dword [rbp + 0x44], eax
jmp 0x437b76
mov rax, qword [0x00489ad8]
cmp dword [rax], 2
je 0x437aef
mov rax, qword [0x00489ad8]
cmp dword [rax], 0
jne 0x437b03
jmp 0x437aef
add rsi, 2
cmp word [rsi], 0
jne 0x437aeb
add rsi, 2
cmp word [rsi], 0
jne 0x4379e1
nop
mov rax, qword [0x00489ad8]
cmp dword [rax], 0
je 0x437b20
mov rax, qword [0x00489ad8]
cmp dword [rax], 2
jne 0x437665
mov rcx, qword [rbp + 0x20]
mov edx, r14d
xor r8, r8
mov r9b, 1
call fcn.00437c60
test eax, eax
je 0x437665
mov rcx, qword [rbp + 0x20]
lea rdx, [rbp + 0x2a4]
call sub.kernel32.dll_GetBinaryTypeW
test eax, eax
je 0x437665
cmp dword [rbp + 0x2a4], 4
jne 0x437665
mov eax, 1
mov dword [rbp + 0x44], eax
jmp 0x437b76
lea rcx, [rbp + 0x50]
mov edx, 8
call fcn.0040a350
mov eax, dword [rbp + 0x44]
lea rsp, [rbp + 0x2b8]
pop rbx
pop rsi
pop rdi
pop r13
pop r14
pop rbp
ret