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

Disassembly:
push 0xffffffffffffffff
push 0x49cdbf
mov eax, dword fs:[0]
push eax
sub esp, 0x29c
mov eax, dword [0x4bc7dc]
xor eax, esp
mov dword [esp + 0x298], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bc7dc]
xor eax, esp
push eax
lea eax, [esp + 0x2b0]
mov dword fs:[0], eax
xor ebp, ebp
mov dword [esp + 0x20], ebp
mov ebx, ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2b8], ebp
mov eax, dword [ebx + 0x48]
cmp eax, ebp
jne 0x41a699
mov eax, dword [0x4c0550]
mov eax, dword [eax + 0x48]
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x290]
push edx
call fcn.0040bf70
add esp, 4
mov byte [esp + 0x2b8], 1
mov dword [esp + 0x1c], ebp
cmp dword [ebx + 0xc], ebp
jle 0x41ad4f
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov edx, dword [0x4c0548]
test eax, eax
jne 0x41a6db
mov eax, dword [edx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
mov edi, ecx
test ecx, ecx
jne 0x41a6eb
mov edi, dword [edx + 0xc]
mov eax, ebx
call fcn.00411250
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x258]
push ecx
mov ecx, eax
call fcn.0040bf70
add esp, 4
mov byte [esp + 0x2b8], 3
mov eax, dword [edi + 8]
push eax
lea esi, [esp + 0x2c]
call fcn.0040cb40
add esp, 4
mov byte [esp + 0x2b8], 4
mov eax, dword [esp + 0x28]
mov edx, 0x4a8968
mov ecx, eax
xor ebp, ebp
mov si, word [ecx]
cmp si, word [edx]
jne 0x41a75a
cmp si, bp
je 0x41a756
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x41a75a
add ecx, 4
add edx, 4
cmp si, bp
jne 0x41a734
xor ecx, ecx
jmp 0x41a75f
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebp
sete cl
test cl, cl
je 0x41a7be
add eax, 0xfffffff0
mov byte [esp + 0x2b8], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a78c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2b8], 1
cmp dword [esp + 0x26c], 8
jb 0x41a7ae
mov ecx, dword [esp + 0x258]
push ecx
call fcn.0047fe1e
add esp, 4
mov dword [esp + 0x26c], 7
jmp 0x41ad28
cmp dword [eax - 4], 1
jle 0x41a7d6
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.00403640
mov eax, dword [esp + 0x28]
mov ebx, 7
xor edx, edx
mov ecx, eax
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x1c0], ebp
mov word [esp + 0x1b0], dx
lea esi, [ecx + 2]
jmp 0x41a800
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x41a800
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x1b4]
call fcn.0040ca50
mov byte [esp + 0x2b8], 5
xor eax, eax
mov word [esp + 0x23c], ax
push ebp
or eax, 0xffffffff
mov ecx, esi
lea edx, [esp + 0x240]
mov dword [esp + 0x254], ebx
mov dword [esp + 0x250], ebp
call fcn.0040c720
mov byte [esp + 0x2b8], bl
cmp dword [esp + 0x1c4], 8
jb 0x41a86f
mov ecx, dword [esp + 0x1b0]
push ecx
call fcn.0047fe1e
add esp, 4
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x1e8]
xor edx, edx
push eax
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1c4], ebp
mov word [esp + 0x1b4], dx
call fcn.0040bf70
add esp, 4
mov ecx, eax
mov byte [esp + 0x2b8], 8
xor edx, edx
mov word [esp + 0x1cc], dx
push ebp
or eax, 0xffffffff
lea edx, [esp + 0x1d0]
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1e0], ebp
call fcn.0040c720
lea ebx, [esp + 0x1cc]
lea esi, [esp + 0x204]
lea ecx, [esp + 0x23c]
mov byte [esp + 0x2b8], 9
call fcn.004752f0
mov ecx, eax
xor edi, edi
push edi
or eax, 0xffffffff
lea edx, [esp + 0x240]
mov byte [esp + 0x2bc], 0xa
call fcn.0040c720
mov ebx, 8
mov byte [esp + 0x2b8], 9
cmp dword [esp + 0x218], ebx
jb 0x41a930
mov eax, dword [esp + 0x204]
push eax
call fcn.0047fe1e
add esp, 4
xor ecx, ecx
mov esi, 7
mov byte [esp + 0x2b8], bl
mov dword [esp + 0x218], esi
mov dword [esp + 0x214], edi
mov word [esp + 0x204], cx
cmp dword [esp + 0x1e0], ebx
jb 0x41a96d
mov edx, dword [esp + 0x1cc]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov byte [esp + 0x2b8], 7
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x1dc], edi
mov word [esp + 0x1cc], ax
cmp dword [esp + 0x1fc], ebx
jb 0x41a9a6
mov ecx, dword [esp + 0x1e8]
push ecx
call fcn.0047fe1e
add esp, 4
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0xc]
lea eax, [esp + 0x1e8]
push eax
call fcn.0040bf70
add esp, 4
lea ecx, [esp + 0x204]
push ecx
mov ebx, eax
lea ecx, [esp + 0x240]
mov byte [esp + 0x2bc], 0xb
call fcn.00475170
mov ecx, eax
push 0
or eax, 0xffffffff
lea edx, [esp + 0x240]
mov byte [esp + 0x2bc], 0xc
call fcn.0040c720
mov esi, 8
mov byte [esp + 0x2b8], 0xb
cmp dword [esp + 0x218], esi
jb 0x41aa1c
mov edx, dword [esp + 0x204]
push edx
call fcn.0047fe1e
add esp, 4
mov eax, 7
xor ecx, ecx
mov byte [esp + 0x2b8], al
mov dword [esp + 0x218], eax
mov dword [esp + 0x214], 0
mov word [esp + 0x204], cx
cmp dword [esp + 0x1fc], esi
jb 0x41aa5d
mov edx, dword [esp + 0x1e8]
push edx
call fcn.0047fe1e
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x1e8]
push edx
call fcn.0040bf70
add esp, 4
lea ecx, [esp + 0x204]
push ecx
mov ebx, eax
lea ecx, [esp + 0x240]
mov byte [esp + 0x2bc], 0xd
call fcn.00475170
mov ecx, eax
xor ebp, ebp
push ebp
or eax, 0xffffffff
lea edx, [esp + 0x240]
mov byte [esp + 0x2bc], 0xe
call fcn.0040c720
mov edi, 8
mov byte [esp + 0x2b8], 0xd
cmp dword [esp + 0x218], edi
jb 0x41aad4
mov edx, dword [esp + 0x204]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov byte [esp + 0x2b8], 7
mov dword [esp + 0x218], 7
mov dword [esp + 0x214], ebp
mov word [esp + 0x204], ax
cmp dword [esp + 0x1fc], edi
jb 0x41ab11
mov ecx, dword [esp + 0x1e8]
push ecx
call fcn.0047fe1e
add esp, 4
mov ebx, dword [esp + 0x24]
mov eax, ebx
call fcn.00411250
mov ecx, dword [eax + 0x10]
mov esi, dword [ecx + 0x10]
mov eax, esi
cmp esi, 9
jb 0x41ab2e
mov eax, 9
cmp dword [ecx + 0x14], 0x10
jb 0x41ab38
mov edx, dword [ecx]
jmp 0x41ab3a
mov edx, ecx
mov ecx, str.framework
call fcn.00403d90
cmp eax, ebp
jne 0x41ab5c
cmp esi, 9
jae 0x41ab52
or eax, 0xffffffff
jmp 0x41ab5a
xor eax, eax
cmp esi, 9
setne al
cmp eax, ebp
sete al
test al, al
sete al
test al, al
je 0x41ac81
cmp dword [esp + 0x268], ebp
je 0x41ac81
mov eax, ebx
call fcn.00411250
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x10], ebp
jne 0x41ac81
mov ecx, dword [esp + 0x258]
cmp dword [esp + 0x26c], edi
jae 0x41aba3
lea ecx, [esp + 0x258]
mov eax, dword [esp + 0x23c]
cmp dword [esp + 0x250], edi
jae 0x41abba
lea eax, [esp + 0x23c]
push ecx
push eax
lea edx, [esp + 0x1f0]
push str._s__s
push edx
call fcn.00474110
add esp, 0x10
mov ecx, eax
xor eax, eax
mov bl, 0xf
mov byte [esp + 0x2b8], bl
mov word [esp + 0x1cc], ax
mov esi, 7
push ebp
or eax, 0xffffffff
lea edx, [esp + 0x1d0]
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x1e0], ebp
call fcn.0040c720
push ebp
or eax, 0xffffffff
lea ecx, [esp + 0x1d0]
lea edx, [esp + 0x240]
mov byte [esp + 0x2bc], 0x10
call fcn.0040c720
mov byte [esp + 0x2b8], bl
cmp dword [esp + 0x1e0], edi
jb 0x41ac48
mov ecx, dword [esp + 0x1cc]
push ecx
call fcn.0047fe1e
add esp, 4
xor edx, edx
mov byte [esp + 0x2b8], 7
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x1dc], ebp
mov word [esp + 0x1cc], dx
cmp dword [esp + 0x1fc], edi
jb 0x41ac81
mov eax, dword [esp + 0x1e8]
push eax
call fcn.0047fe1e
add esp, 4
lea ecx, [esp + 0x23c]
lea edi, [esp + 0x38]
call fcn.0041d890
mov edi, 8
mov byte [esp + 0x2b8], 4
cmp dword [esp + 0x250], edi
jb 0x41acb7
mov ecx, dword [esp + 0x23c]
push ecx
call fcn.0047fe1e
add esp, 4
mov byte [esp + 0x2b8], 3
mov eax, dword [esp + 0x28]
xor edx, edx
mov esi, 7
add eax, 0xfffffff0
mov word [esp + 0x23c], dx
mov dword [esp + 0x250], esi
mov dword [esp + 0x24c], ebp
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41acfc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2b8], 1
cmp dword [esp + 0x26c], edi
jb 0x41ad1d
mov ecx, dword [esp + 0x258]
push ecx
call fcn.0047fe1e
add esp, 4
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x26c], esi
mov eax, dword [esp + 0x1c]
inc eax
xor edx, edx
mov word [esp + 0x258], dx
mov dword [esp + 0x268], ebp
mov dword [esp + 0x1c], eax
cmp eax, dword [ebx + 0xc]
jl 0x41a6c1
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x2c]
xor eax, eax
mov dword [esp + 0x34], eax
test ecx, ecx
jle 0x41b3ec
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x28]
mov edi, dword [ecx + eax*4]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x2c], edi
test eax, eax
jne 0x41ad7e
mov edx, dword [0x4c054c]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 8]
push eax
lea esi, [esp + 0x1c]
call fcn.0040cb40
add esp, 4
mov byte [esp + 0x2b8], 0x12
mov esi, dword [esp + 0x18]
mov ecx, 0x4a8968
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41adcb
test dx, dx
je 0x41adc7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41adcb
add eax, 4
add ecx, 4
test dx, dx
jne 0x41ada5
xor eax, eax
jmp 0x41add0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x41ade9
mov byte [esp + 0x2b8], 1
lea eax, [esi - 0x10]
jmp 0x41b3b9
mov eax, ebx
call fcn.00411250
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x204]
push ecx
mov ecx, eax
call fcn.0040bf70
add esp, 4
mov byte [esp + 0x2b8], 0x13
cmp dword [edi + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x41b368
nop
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x18]
xor ebx, ebx
cmp dword [eax - 4], 1
mov dword [esp + 0x48], edx
jle 0x41ae50
mov eax, dword [eax - 0xc]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00403640
mov eax, dword [esp + 0x18]
mov edi, 7
xor edx, edx
mov ecx, eax
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1dc], ebx
mov word [esp + 0x1cc], dx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x41ae72
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x1d0]
call fcn.0040ca50
mov byte [esp + 0x2b8], 0x15
xor eax, eax
mov word [esp + 0x1b0], ax
push ebx
or eax, 0xffffffff
mov ecx, esi
lea edx, [esp + 0x1b4]
mov dword [esp + 0x1c8], edi
mov dword [esp + 0x1c4], ebx
call fcn.0040c720
mov byte [esp + 0x2b8], 0x17
cmp dword [esp + 0x1e0], 8
jb 0x41aee2
mov ecx, dword [esp + 0x1cc]
push ecx
call fcn.0047fe1e
add esp, 4
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
xor edx, edx
mov word [esp + 0x1cc], dx
lea edx, [esp + 0x274]
xor esi, esi
push edx
mov dword [esp + 0x1e4], edi
mov dword [esp + 0x1e0], esi
call fcn.0040bf70
add esp, 4
mov ecx, eax
mov byte [esp + 0x2b8], 0x18
xor eax, eax
mov word [esp + 0x220], ax
push esi
or eax, 0xffffffff
lea edx, [esp + 0x224]
mov dword [esp + 0x238], edi
mov dword [esp + 0x234], esi
call fcn.0040c720
lea ebx, [esp + 0x220]
lea esi, [esp + 0x1e8]
lea ecx, [esp + 0x1b0]
mov byte [esp + 0x2b8], 0x19
call fcn.004752f0
mov ecx, eax
xor ebp, ebp
push ebp
or eax, 0xffffffff
lea edx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x1a
call fcn.0040c720
mov byte [esp + 0x2b8], 0x19
cmp dword [esp + 0x1fc], 8
jb 0x41afa5
mov ecx, dword [esp + 0x1e8]
push ecx
call fcn.0047fe1e
add esp, 4
xor edx, edx
mov edi, 8
mov esi, 7
mov byte [esp + 0x2b8], 0x18
mov dword [esp + 0x1fc], esi
mov dword [esp + 0x1f8], ebp
mov word [esp + 0x1e8], dx
cmp dword [esp + 0x234], edi
jb 0x41afe8
mov eax, dword [esp + 0x220]
push eax
call fcn.0047fe1e
add esp, 4
xor ecx, ecx
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x234], esi
mov dword [esp + 0x230], ebp
mov word [esp + 0x220], cx
cmp dword [esp + 0x288], edi
jb 0x41b021
mov edx, dword [esp + 0x274]
push edx
call fcn.0047fe1e
add esp, 4
mov edi, dword [esp + 0x24]
mov eax, edi
call fcn.00411250
mov ecx, dword [eax + 0x10]
mov esi, dword [ecx + 0x10]
mov eax, esi
cmp esi, 9
jb 0x41b03e
mov eax, 9
cmp dword [ecx + 0x14], 0x10
jb 0x41b048
mov edx, dword [ecx]
jmp 0x41b04a
mov edx, ecx
mov ecx, str.framework
call fcn.00403d90
cmp eax, ebp
jne 0x41b06c
cmp esi, 9
jae 0x41b062
or eax, 0xffffffff
jmp 0x41b06a
xor eax, eax
cmp esi, 9
setne al
cmp eax, ebp
sete al
test al, al
sete al
test al, al
je 0x41b1a1
mov eax, edi
call fcn.00411250
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x10], ebp
je 0x41b1a1
mov eax, edi
call fcn.00411250
mov eax, dword [eax + 0x14]
cmp dword [eax + 0x10], ebp
jne 0x41b1a1
mov ecx, dword [esp + 0x204]
mov eax, 8
cmp dword [esp + 0x218], eax
jae 0x41b0be
lea ecx, [esp + 0x204]
cmp dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x1b0]
jae 0x41b0d5
lea eax, [esp + 0x1b0]
push ecx
push eax
lea eax, [esp + 0x27c]
push str._s__s
push eax
call fcn.00474110
add esp, 0x10
mov ecx, eax
xor edx, edx
mov bl, 0x1b
mov byte [esp + 0x2b8], bl
mov word [esp + 0x220], dx
mov edi, 7
push ebp
or eax, 0xffffffff
lea edx, [esp + 0x224]
mov dword [esp + 0x238], edi
mov dword [esp + 0x234], ebp
call fcn.0040c720
push ebp
or eax, 0xffffffff
lea ecx, [esp + 0x224]
lea edx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x1c
call fcn.0040c720
mov esi, 8
mov byte [esp + 0x2b8], bl
cmp dword [esp + 0x234], esi
jb 0x41b168
mov eax, dword [esp + 0x220]
push eax
call fcn.0047fe1e
add esp, 4
xor ecx, ecx
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x234], edi
mov dword [esp + 0x230], ebp
mov word [esp + 0x220], cx
cmp dword [esp + 0x288], esi
jb 0x41b1a1
mov edx, dword [esp + 0x274]
push edx
call fcn.0047fe1e
add esp, 4
mov edi, dword [esp + 0x48]
mov ecx, dword [edi + 0xc]
lea eax, [esp + 0x274]
push eax
call fcn.0040bf70
add esp, 4
lea ecx, [esp + 0x1e8]
push ecx
mov ebx, eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x1d
call fcn.00475170
mov ecx, eax
push 0
or eax, 0xffffffff
lea edx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x1e
call fcn.0040c720
mov esi, 8
mov byte [esp + 0x2b8], 0x1d
cmp dword [esp + 0x1fc], esi
jb 0x41b217
mov edx, dword [esp + 0x1e8]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x1fc], 7
mov dword [esp + 0x1f8], 0
mov word [esp + 0x1e8], ax
cmp dword [esp + 0x288], esi
jb 0x41b258
mov ecx, dword [esp + 0x274]
push ecx
call fcn.0047fe1e
add esp, 4
mov ecx, dword [edi + 0x10]
lea edx, [esp + 0x274]
push edx
call fcn.0040bf70
add esp, 4
lea ecx, [esp + 0x1e8]
push ecx
mov ebx, eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x1f
call fcn.00475170
mov ecx, eax
xor ebx, ebx
push ebx
or eax, 0xffffffff
lea edx, [esp + 0x1b4]
mov byte [esp + 0x2bc], 0x20
call fcn.0040c720
mov esi, 8
mov byte [esp + 0x2b8], 0x1f
cmp dword [esp + 0x1fc], esi
jb 0x41b2cb
mov edx, dword [esp + 0x1e8]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov ebp, 7
mov byte [esp + 0x2b8], 0x17
mov dword [esp + 0x1fc], ebp
mov dword [esp + 0x1f8], ebx
mov word [esp + 0x1e8], ax
cmp dword [esp + 0x288], esi
jb 0x41b309
mov ecx, dword [esp + 0x274]
push ecx
call fcn.0047fe1e
add esp, 4
lea ecx, [esp + 0x1b0]
lea edi, [esp + 0x38]
call fcn.0041d890
mov byte [esp + 0x2b8], 0x13
cmp dword [esp + 0x1c4], esi
jb 0x41b33a
mov edx, dword [esp + 0x1b0]
push edx
call fcn.0047fe1e
add esp, 4
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov word [esp + 0x1b0], ax
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c4], ebp
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx + 0xc]
jl 0x41ae20
mov byte [esp + 0x2b8], 0x12
cmp dword [esp + 0x218], 8
jb 0x41b38a
mov edx, dword [esp + 0x204]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov word [esp + 0x204], ax
mov byte [esp + 0x2b8], 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x218], 7
mov dword [esp + 0x214], 0
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [ebx + 0x2c]
jl 0x41ad64
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
mov byte [esp + 0x17], 1
cmp esi, ebp
je 0x41b480
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, 1
cmp dword [esi + 0x14], 8
jb 0x41b412
mov eax, dword [esi]
jmp 0x41b414
mov eax, esi
push eax
call edi
cmp eax, 0xffffffff
jne 0x41b438
mov dword [esp + 0x2b8], ebx
test byte [esp + 0x20], bl
je 0x41b470
and dword [esp + 0x20], 0xfffffffe
lea ecx, [esp + 0xfc]
push ecx
jmp 0x41b46b
cmp dword [esi + 0x14], 8
jb 0x41b442
mov eax, dword [esi]
jmp 0x41b444
mov eax, esi
push eax
call edi
cmp eax, 0xffffffff
je 0x41b475
shr eax, 4
and al, 1
je 0x41b475
mov dword [esp + 0x2b8], ebx
test byte [esp + 0x20], 2
je 0x41b470
and dword [esp + 0x20], 0xfffffffd
lea edx, [esp + 0x4c]
push edx
call fcn.00473360
mov byte [esp + 0x17], 0
add esi, 0x1c
cmp esi, ebp
jne 0x41b408
mov esi, dword [esp + 0x38]
mov byte [esp + 0x2b8], 0
cmp dword [esp + 0x2a4], 8
jb 0x41b4a6
mov eax, dword [esp + 0x290]
push eax
call fcn.0047fe1e
mov esi, dword [esp + 0x3c]
add esp, 4
xor ecx, ecx
mov edi, 7
mov dword [esp + 0x2a4], edi
mov dword [esp + 0x2a0], 0
mov word [esp + 0x290], cx
mov dword [esp + 0x2b8], 0xffffffff
test esi, esi
je 0x41b514
cmp esi, ebp
je 0x41b507
lea ebx, [ebx]
cmp dword [esi + 0x14], 8
jb 0x41b4f1
mov edx, dword [esi]
push edx
call fcn.0047fe1e
add esp, 4
xor eax, eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x1c
cmp esi, ebp
jne 0x41b4e0
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0047fe1e
add esp, 4
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x2b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x298]
xor ecx, esp
call fcn.0047fe29
add esp, 0x2a8
ret