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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x42d0b4]
xor eax, esp
mov dword [esp + 0x240], eax
mov ecx, dword [ecx + 0x38]
push ebx
push esi
xor ebx, ebx
mov dword [esp + 8], edx
push edi
mov dword [esp + 0x1c], ebx
xor esi, esi
call fcn.004122c0
mov edi, eax
test edi, edi
je 0x41110b
mov esi, edi
lea ecx, [esi + 2]
mov edi, edi
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4110f0
sub esi, ecx
sar esi, 1
cmp esi, 0x7fe7
jae 0x41cea5
cmp byte [0x443cc9], bl
je 0x411134
test edi, edi
je 0x41ceb4
push 4
push 0x4021f4
push edi
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x41ceb4
push 0x104
lea eax, [esp + 0x2c]
mov dword [esp + 0x234], ebx
push 0
push eax
mov byte [esp + 0x240], 1
mov dword [esp + 0x244], 0x104
call sub.msvcrt.dll_memset
add esp, 0xc
cmp byte [esp + 0x234], bl
je 0x41ced7
mov eax, 0x7fe7
push eax
lea ecx, [esp + 0x2c]
call fcn.00410c70
test eax, eax
js 0x41cf67
push edi
lea ecx, [esp + 0x2c]
call fcn.00410d89
mov ecx, dword [esp + 0x230]
test ecx, ecx
je 0x41cee1
mov ebx, 0x5c
mov edx, 0x2f
call fcn.0040d7d4
test eax, eax
jne 0x411889
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x244], 0x3a005c
mov word [esp + 0x248], ax
test ecx, ecx
je 0x41ceea
lea edx, [esp + 0x244]
call fcn.0040d3bc
cmp eax, esi
jae 0x411706
mov ecx, dword [esp + 0x230]
xor eax, eax
mov dword [esp + 0x18], 1
mov word [esp + 0x246], ax
test ecx, ecx
je 0x41cef3
mov edx, ebx
call fcn.00412349
mov edi, eax
test edi, edi
je 0x41cefc
mov esi, dword [esp + 0x230]
add edi, 2
cmp word [edi], 0
je 0x41cfd5
mov ecx, 0x4021cc
mov eax, edi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41183d
test dx, dx
je 0x41126a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41183d
add eax, 4
add ecx, 4
test dx, dx
jne 0x411240
xor eax, eax
test eax, eax
je 0x41cfd5
mov ecx, 0x4021ec
mov eax, edi
jmp 0x411280
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411847
test dx, dx
je 0x4112aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411847
add eax, 4
add ecx, 4
test dx, dx
jne 0x411280
xor eax, eax
test eax, eax
je 0x41cfd5
mov ecx, 0x1ff9c
call fcn.004100b0
mov esi, eax
test esi, esi
je 0x41cf67
mov eax, dword [esp + 0x230]
test eax, eax
je 0x41cf25
mov ebx, dword [ebp + 8]
mov edx, ebx
mov ecx, dword [esp + 0xc]
push eax
call fcn.00411040
mov ecx, dword [esp + 0x230]
test ecx, ecx
je 0x41cf2e
mov eax, edi
xor edx, edx
sub eax, ecx
mov ecx, dword [esp + 0xc]
sar eax, 1
push 0x4021cc
mov word [ecx + eax*2], dx
mov edx, ebx
mov ebx, ecx
call fcn.004118c0
push ebx
mov edx, 0xffce
mov ecx, esi
call fcn.00412d22
test eax, eax
jne 0x41cf37
movzx eax, word [esi]
mov ecx, esi
mov edx, eax
test ax, ax
je 0x411342
mov eax, ecx
add ecx, 2
cmp word [ecx], 0
jne 0x411334
movzx edx, word [eax]
cmp dx, 0x5c
je 0x411359
push 0x4021e8
mov edx, 0xffce
mov ecx, esi
call fcn.004118c0
push edi
mov edx, 0xffce
mov ecx, esi
call fcn.004118c0
mov edx, esi
lea ecx, [edx + 2]
jmp 0x411370
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x411370
sub edx, ecx
mov ecx, esi
sar edx, 1
lea edx, [edx*2 + 2]
call fcn.00410100
mov ebx, eax
test ebx, ebx
je 0x41cf60
mov edx, 0x5c
mov ecx, ebx
call fcn.00412349
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], ecx
je 0x41172e
xor esi, esi
push dword [esp + 0xc]
call dword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_NeedCurrentDirectoryForExePathW]
mov dword [esp + 0x10], eax
test eax, eax
je 0x41cf97
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4113d6
sub ecx, edx
sar ecx, 1
lea edi, [ecx + 2]
add edi, 2
test esi, esi
jne 0x4116eb
lea ecx, [edi + edi]
call fcn.004100b0
mov esi, eax
test esi, esi
je 0x41cf67
mov eax, dword [esp + 0x10]
test eax, eax
je 0x411437
push 0x4021c8
mov edx, edi
mov ecx, esi
call fcn.004118c0
push ebx
mov edx, edi
mov ecx, esi
call fcn.004118c0
push 0x4021c8
mov edx, edi
mov ecx, esi
call fcn.004118c0
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], 0
je 0x411743
mov ecx, esi
call fcn.00412920
push 1
mov edx, 0x4021c4
mov ecx, esi
call fcn.0040ea40
mov edx, dword [esp + 0x14]
mov edi, eax
mov dword [esp + 0x10], edi
lea esi, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x411464
sub edx, esi
sar edx, 1
lea eax, [edx + 1]
mov dword [esp + 0x24], eax
cmp byte [0x443cc9], cl
je 0x41cf9e
mov ecx, 0x4021d8
call fcn.0040cfbc
mov esi, eax
test esi, esi
je 0x41cf9e
mov ecx, esi
call fcn.00412920
push 1
mov edx, 0x4021c4
mov ecx, esi
call fcn.0040ea40
mov dword [esp + 0x1c], eax
mov esi, edi
lea ecx, [esi + 2]
jmp 0x4114c0
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4114c0
sub esi, ecx
mov ecx, edi
sar esi, 1
lea ebx, [esi + 1]
mov dword [esp + 0x20], ebx
call fcn.004122c0
push eax
mov edx, ebx
mov ecx, edi
call fcn.00411040
mov edx, edi
lea ecx, [edx + 2]
lea esp, [esp]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4114f0
sub edx, ecx
mov eax, edi
movzx ecx, word [edi]
sar edx, 1
mov edi, ecx
mov ebx, ecx
test cx, cx
je 0x41151e
lea ecx, [ecx]
mov ecx, eax
add eax, 2
cmp word [eax], 0
jne 0x411510
movzx edi, word [ecx]
cmp di, 0x5c
je 0x411529
mov esi, dword [esp + 0x20]
inc edx
test bx, bx
je 0x411851
mov ebx, dword [esp + 0x24]
add ebx, edx
cmp ebx, 0x7fe7
ja 0x41cfa8
push dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
call fcn.00411040
cmp di, 0x5c
je 0x411837
mov eax, dword [esp + 0x10]
lea eax, [eax + esi*2]
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], eax
cmp di, 0x5c
je 0x411585
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x244]
push eax
mov edx, esi
call fcn.004118c0
mov edi, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [esp + 0xc]
push edi
call fcn.004118c0
mov ecx, dword [esp + 0xc]
call fcn.004122c0
mov ecx, dword [esp + 0xc]
mov edx, esi
push eax
call fcn.00411040
mov edx, dword [esp + 0xc]
mov esi, edx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4115b3
sub esi, ecx
sar esi, 1
cmp word [edx + 2], 0x3a
jne 0x4115e1
mov cx, word [edx]
call fcn.004129bb
mov edi, dword [esp + 0x10]
test eax, eax
je 0x4114b3
mov edi, dword [esp + 0x14]
mov edx, 0x2e
mov ecx, edi
call fcn.00412349
test eax, eax
je 0x41169d
cmp word [eax + 2], 0
je 0x41169d
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
push 1
call fcn.0040d2c1
test eax, eax
je 0x411684
mov ecx, dword [esp + 0xc]
mov edx, 0x2e
call fcn.00412349
mov edi, eax
test edi, edi
je 0x41cfbf
push 0x402200
push edi
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x41180b
push 0x40220c
push edi
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
push dword [esp + 0x230]
test eax, eax
je 0x411812
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x240]
xor ecx, esp
call fcn.00416fd0
mov esp, ebp
pop ebp
ret 4
cmp dword [esp + 0x18], 0
jne 0x411894
mov eax, dword [0x443cf0]
cmp eax, 2
jne 0x4118a7
mov edx, 0x2a
mov ecx, edi
call fcn.0040d7d4
test eax, eax
jne 0x41cf54
lea edx, [eax + 0x3f]
mov ecx, edi
call fcn.0040d7d4
test eax, eax
jne 0x41cf54
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
push eax
push 0x402218
push esi
call fcn.0040cd70
test eax, eax
jne 0x411770
mov edi, dword [esp + 0x10]
jmp 0x4114b3
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4116f0
sub ecx, edx
sar ecx, 1
add edi, ecx
jmp 0x4113f3
mov esi, dword [esp + 0x230]
xor eax, eax
mov dword [esp + 0x18], 0
mov word [esp + 0x246], ax
test esi, esi
je 0x41cf1c
mov edi, esi
jmp 0x411228
mov ecx, 0x401f94
call fcn.0040cfbc
mov esi, eax
mov dword [esp + 0x1c], esi
jmp 0x4113bb
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x411442
test eax, eax
je 0x411761
push 0x4021c4
mov edx, edi
mov ecx, esi
call fcn.004118c0
push ebx
mov edx, edi
mov ecx, esi
call fcn.004118c0
jmp 0x411442
mov eax, dword [esp + 0x1c]
cmp word [eax], 0
je 0x4116e2
mov edi, edi
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411785
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ebx]
cmp eax, 0x7fe7
ja 0x4117c0
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
push 1
push edi
push esi
call fcn.0040cd70
test eax, eax
jne 0x4117d9
mov eax, dword [0x443cf0]
cmp eax, 2
jne 0x41cfc8
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x4117c0
cmp word [edi], ax
jne 0x411780
mov edi, dword [esp + 0x10]
jmp 0x4114b3
push 0x40220c
push edi
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x41180b
push 0x402200
push edi
call dword [sym.imp.msvcrt.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x41180b
push dword [esp + 0x230]
jmp 0x41165f
push dword [esp + 0x230]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
mov ecx, dword [esp + 0x250]
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00416fd0
mov esp, ebp
pop ebp
ret 4
inc esi
jmp 0x41155e
sbb eax, eax
or eax, 1
jmp 0x41126c
sbb eax, eax
or eax, 1
jmp 0x4112ac
cmp dword [esp + 0x18], 0
jne 0x411879
mov dword [0x443cf0], 0x2331
push dword [esp + 0x230]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
add esp, 4
xor eax, eax
jmp 0x41166d
mov eax, dword [0x443cf0]
test eax, eax
je 0x411858
cmp eax, 2
jne 0x411862
jmp 0x411858
mov word [eax], bx
lea ecx, [eax + 2]
jmp 0x4111a4
mov eax, dword [0x443cf0]
cmp eax, 5
jne 0x411694
jmp 0x411612
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x4114b3
mov edi, dword [esp + 0x14]
jmp 0x41169d
mov dword [0x443cf0], 0x233f
jmp 0x411872
mov ecx, 0x401fa0
call fcn.0040cfbc
mov edi, eax
test edi, edi
jne 0x411134
mov dword [0x443cf0], 0x400023d2
jmp 0x411872
mov eax, 0x104
jmp 0x411174
lea ecx, [esp + 0x28]
jmp 0x41119f
lea ecx, [esp + 0x28]
jmp 0x4111d8
lea ecx, [esp + 0x28]
jmp 0x41120d
mov ecx, dword [esp + 0x230]
test ecx, ecx
jne 0x41cf0b
lea ecx, [esp + 0x28]
mov edx, 0x3a
call fcn.0040d7d4
mov edi, eax
jmp 0x41121e
lea edi, [esp + 0x28]
jmp 0x411228
lea eax, [esp + 0x28]
jmp 0x4112d7
lea ecx, [esp + 0x28]
jmp 0x4112f5
cmp byte [0x443cc9], 0
je 0x41cf54
push ebx
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41cf54
test al, 0x10
jne 0x41cff1
push dword [esp + 0x230]
jmp 0x41d022
mov ecx, esi
call fcn.00410040
mov dword [0x443cf0], 8
jmp 0x41cf7d
mov dword [0x443cf0], 0x15
push dword [esp + 0x230]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov eax, 3
jmp 0x41166d
xor edi, edi
jmp 0x4113e8
mov esi, 0x403890
jmp 0x4114a1
cmp di, 0x5c
jne 0x41cfaf
inc esi
mov edi, dword [esp + 0x10]
lea edi, [edi + esi*2]
mov dword [esp + 0x10], edi
jmp 0x4114b3
mov edi, dword [esp + 0x14]
jmp 0x41168f
test eax, eax
jne 0x4116e2
jmp 0x4117c0
cmp byte [0x443cc9], 0
je 0x41d021
push dword [esp + 0xc]
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41d00b
test al, 0x10
je 0x41d01a
push dword [esp + 0x230]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
add esp, 4
mov eax, 5
jmp 0x41166d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x15
je 0x41cf73
mov esi, dword [esp + 0x230]
push esi
mov dword [0x443cf0], 0x2331
jmp 0x411869