Function at 0x41b050
Capabilities:
Delete file
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57be84
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x5d7ce0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp + 0x10]
push str.Wow64DisableWow64FsRedirection
xor ebx, ebx
push str.kernel32
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x264], edx
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x25c], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x260], eax
cmp eax, ebx
je 0x41b0ce
lea ecx, [ebp - 0x25c]
push ecx
call eax
mov dword [ebp - 4], ebx
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b0eb
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x254], eax
mov byte [ebp - 4], 1
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b11b
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 2
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b14b
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 3
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b17b
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x238], eax
mov byte [ebp - 4], 4
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b1ab
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x248], eax
mov byte [ebp - 4], 5
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b1db
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x23c], eax
mov byte [ebp - 4], 6
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b20b
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x244], eax
push 1
lea ecx, [ebp - 0x254]
push ecx
push ecx
mov byte [ebp - 4], 7
mov esi, esp
mov dword [ebp - 0x258], esp
mov dword [ebp - 0x258], esi
call fcn.0044d418
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41b253
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.strSrvFile
mov byte [ebp - 4], 8
test ecx, 0xffff0000
jne 0x41b28c
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
cmp eax, ebx
je 0x41b29a
push edi
push eax
mov ecx, esi
call fcn.004074b0
jmp 0x41b29a
push 0xa
push str.strSrvFile
mov ecx, esi
call fcn.00407870
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x22c]
push eax
call fcn.0043b9d0
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41b405
mov ecx, 0xa0000001
lea esi, [ebp - 0x220]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.0040d290
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b303
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b335
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b35b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b381
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
push 1
lea ecx, [ebp - 0x228]
push ecx
push ecx
mov edi, esp
mov dword [ebp - 0x258], esp
mov dword [ebp - 0x258], edi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41b437
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.strDstDir
mov byte [ebp - 4], 0xa
test ecx, 0xffff0000
jne 0x41b470
mov edx, ecx
movzx esi, dx
push esi
call fcn.0044d834
test eax, eax
je 0x41b47e
push esi
push eax
mov ecx, edi
call fcn.004074b0
jmp 0x41b47e
push 9
push str.strDstDir
mov ecx, edi
call fcn.00407870
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x22c]
push eax
call fcn.0043b9d0
cmp dword [0x5e084c], 0
mov dword [ebp - 0x224], eax
jne 0x41b4c4
push 0x60
call fcn.0044c8d5
add esp, 4
test eax, eax
je 0x41b4bd
mov esi, eax
call fcn.00445620
jmp 0x41b4bf
xor eax, eax
mov dword [0x5e084c], eax
mov esi, dword [ebp - 0x228]
movzx ecx, word [esi]
xor eax, eax
mov edx, esi
test cx, cx
je 0x41b539
cmp cx, 0x5c
jne 0x41b4e4
test eax, eax
jne 0x41b4e6
mov eax, edx
jmp 0x41b4e6
xor eax, eax
movzx ecx, word [edx + 2]
add edx, 2
test cx, cx
jne 0x41b4d6
test eax, eax
je 0x41b539
sub eax, esi
sar eax, 1
mov edi, eax
jns 0x41b508
push 0x80070057
call fcn.00407ad0
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x41b52b
push edi
lea ecx, [ebp - 0x228]
call fcn.004077a0
mov esi, dword [ebp - 0x228]
cmp edi, dword [esi - 8]
jg 0x41b4fe
xor ecx, ecx
mov dword [esi - 0xc], edi
mov word [esi + edi*2], cx
push 1
push 0x5ad338
lea ecx, [ebp - 0x228]
call fcn.004138d0
cmp dword [ebp - 0x224], 0
jne 0x41b6a4
mov ecx, 0xa0000001
lea esi, [ebp - 0x220]
call fcn.0041ae20
mov ecx, dword [ebp - 0x234]
push eax
mov byte [ebp - 4], 0xb
call fcn.0040d290
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b59e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b5d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b5f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b61c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b642
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b668
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
push 1
lea ecx, [ebp - 0x248]
push ecx
push ecx
mov esi, esp
mov dword [ebp - 0x258], esp
mov dword [ebp - 0x258], esi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41b6d6
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.iOverwrite
mov byte [ebp - 4], 0xc
test ecx, 0xffff0000
jne 0x41b70f
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x41b71d
push edi
push eax
mov ecx, esi
call fcn.004074b0
jmp 0x41b71d
push 0xa
push str.iOverwrite
mov ecx, esi
call fcn.00407870
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x22c]
push eax
call fcn.0043b9d0
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41b88c
mov ecx, 0xa0000001
lea esi, [ebp - 0x220]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0xd
call fcn.0040d290
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b786
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b7b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b7de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b804
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b82a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b850
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
mov ecx, dword [ebp - 0x248]
push ecx
call fcn.0054df0d
add esp, 4
push 1
lea edx, [ebp - 0x23c]
push edx
push ecx
mov edi, esp
mov dword [ebp - 0x24c], esp
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x24c], edi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41b8d3
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.iSystemBits
mov byte [ebp - 4], 0xe
test ecx, 0xffff0000
jne 0x41b90c
mov edx, ecx
movzx esi, dx
push esi
call fcn.0044d834
test eax, eax
je 0x41b91a
push esi
push eax
mov ecx, edi
call fcn.004074b0
jmp 0x41b91a
push 0xb
push str.iSystemBits
mov ecx, edi
call fcn.00407870
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x22c]
push eax
call fcn.0043b9d0
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41ba89
mov ecx, 0xa0000001
lea esi, [ebp - 0x220]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0xf
call fcn.0040d290
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b983
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b9b5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b9db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ba01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ba27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ba4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
mov ecx, dword [ebp - 0x23c]
push ecx
call fcn.0054df0d
add esp, 4
push 1
lea edx, [ebp - 0x244]
push edx
push ecx
mov esi, esp
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x220], esi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41bad0
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.iKeepDir
mov byte [ebp - 4], 0x10
test ecx, 0xffff0000
jne 0x41bb09
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x41bb17
push edi
push eax
mov ecx, esi
call fcn.004074b0
jmp 0x41bb17
push 8
push str.iKeepDir
mov ecx, esi
call fcn.00407870
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 7
mov ebx, dword [ebp - 0x22c]
push esi
call fcn.0043b9d0
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41bc86
mov ecx, 0xa0000001
lea esi, [ebp - 0x220]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.0040d290
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bb80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bbb2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bbd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bbfe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bc24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bc4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
mov ecx, dword [ebp - 0x244]
push ecx
call fcn.0054df0d
add esp, 4
test eax, eax
je 0x41c0a3
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41bcb7
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x240], eax
mov byte [ebp - 4], 0x12
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41bce7
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x220], eax
push 0
lea ecx, [ebp - 0x240]
push ecx
push ecx
mov byte [ebp - 4], 0x13
mov ecx, esp
mov dword [ebp - 0x224], esp
push str.strSrvFile
call fcn.004079b0
mov ebx, dword [ebp - 0x22c]
push esi
call fcn.0043b9d0
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41becb
mov ecx, 0xa0000001
lea esi, [ebp - 0x22c]
call fcn.0041ae20
mov ecx, dword [ebp - 0x234]
push eax
mov byte [ebp - 4], 0x14
call fcn.0040d290
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bd79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bdab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bdd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41bdf7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41be1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41be43
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41be69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41be8f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
push 9
push str._ProjRes_
lea ecx, [ebp - 0x220]
call fcn.00407870
mov esi, dword [ebp - 0x220]
mov edi, dword [ebp - 0x240]
test esi, esi
je 0x41c063
cmp dword [edi - 0xc], 0
jl 0x41c063
push esi
push edi
call fcn.0054d581
add esp, 8
test eax, eax
je 0x41c063
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x41c063
mov eax, dword [esi - 0xc]
push eax
lea ecx, [ebp - 0x22c]
push ecx
lea ecx, [ebp - 0x240]
call fcn.004164f0
mov byte [ebp - 4], 0x15
mov edi, dword [ebp - 0x22c]
push ecx
mov dword [ebp - 0x224], esp
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add edi, 0xfffffff0
mov ebx, esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x41bf6a
cmp eax, dword [edi]
jne 0x41bf6a
mov esi, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41bfa6
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x41bf83
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [edi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0054de82
add esp, 0x10
add esi, 0x10
mov dword [ebx], esi
lea esi, [ebp - 0x224]
call fcn.0044a990
add esp, 4
mov byte [ebp - 4], 0x16
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x228]
call fcn.004138d0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x224]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41bff5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x5e084c], 0
jne 0x41c01c
push 0x60
call fcn.0044c8d5
add esp, 4
test eax, eax
je 0x41c015
mov esi, eax
call fcn.00445620
jmp 0x41c017
xor eax, eax
mov dword [0x5e084c], eax
mov eax, 0x5c
lea ebx, [ebp - 0x228]
call fcn.00417eb0
push 1
push 0x5ad338
mov ecx, ebx
call fcn.004138d0
mov byte [ebp - 4], 0x13
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c057
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov edi, dword [ebp - 0x240]
mov esi, dword [ebp - 0x220]
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c083
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c0a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x5d9fb8], 0
je 0x41c0f7
push str.GetNativeSystemInfo
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41c0ed
lea ecx, [ebp - 0x288]
push ecx
call eax
mov ax, word [ebp - 0x288]
cmp ax, 9
je 0x41c0e3
cmp ax, 6
jne 0x41c0ed
mov dword [0x5e0c44], 1
mov dword [0x5d9fb8], 0
mov eax, dword [ebp - 0x24c]
test eax, eax
je 0x41c10f
cmp eax, 1
jne 0x41c156
cmp dword [0x5e0c44], 0
jne 0x41c164
mov esi, dword [ebp - 0x254]
push ecx
mov dword [ebp - 0x24c], esp
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [ebp - 0x220], esi
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c268
cmp eax, dword [esi]
jne 0x41c268
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c2ac
cmp eax, 2
jne 0x41c164
cmp dword [0x5e0c44], 0
jne 0x41c10f
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ebp - 0x224], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41c194
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c1ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c1e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c206
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c22c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b3f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x254]
add eax, 0xfffffff0
jmp 0x41c944
mov edx, dword [eax]
mov edx, dword [edx]
mov edi, esi
mov ecx, dword [edi + 4]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x41c283
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0054de82
mov edi, dword [ebp - 0x220]
add esp, 0x10
add esi, 0x10
mov dword [ebx], esi
lea esi, [ebp - 0x22c]
call fcn.0044a6f0
add esp, 4
mov byte [ebp - 4], 0x17
push eax
push ecx
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x224], esp
mov ebx, esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x41c2f0
cmp eax, dword [edi]
jne 0x41c2f0
mov esi, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x41c32c
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x41c309
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add esi, 0x10
mov dword [ebx], esi
lea esi, [ebp - 0x240]
call fcn.0044a7b0
add esp, 4
push eax
lea ecx, [ebp - 0x24c]
push ecx
mov byte [ebp - 4], 0x18
call fcn.004135f0
add esp, 0xc
mov byte [ebp - 4], 0x19
mov eax, dword [eax]
mov ebx, dword [ebp - 0x230]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x41c412
cmp dword [ebx + 0xc], 0
jl 0x41c402
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x41c402
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c3a2
cmp eax, dword [esi]
jne 0x41c3a2
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c3de
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x41c3bb
call fcn.0043d450
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c3f7
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x230], edi
jmp 0x41c412
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x230]
call fcn.00407870
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c438
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c45e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c484
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x230]
push ecx
lea edx, [ebp - 0x228]
push edx
lea eax, [ebp - 0x24c]
push eax
call fcn.004135f0
add esp, 0xc
mov byte [ebp - 4], 0x1a
mov eax, dword [eax]
mov edi, dword [ebp - 0x238]
lea esi, [eax - 0x10]
lea ebx, [edi - 0x10]
cmp esi, ebx
je 0x41c566
cmp dword [ebx + 0xc], 0
jl 0x41c550
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x41c550
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x41c4f0
cmp eax, dword [esi]
jne 0x41c4f0
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c52c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x41c509
call fcn.0043d450
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41c545
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x238], edi
jmp 0x41c560
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x238]
call fcn.00407870
mov edi, dword [ebp - 0x238]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x24c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c58c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
lea ebx, [edi - 0x10]
mov dword [ebp - 0x24c], esp
mov dword [ebp - 0x24c], esp
mov dword [ebp - 0x22c], ebx
call eax
cmp dword [ebx + 0xc], 0
lea ecx, [ebx + 0xc]
jl 0x41c5c6
cmp eax, dword [ebx]
jne 0x41c5c6
mov esi, ebx
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x41c602
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x41c5df
call fcn.0043d450
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebx + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0054de82
add esp, 0x10
mov edx, dword [ebp - 0x24c]
add esi, 0x10
mov dword [edx], esi
call fcn.0044aaa0
add esp, 4
test eax, eax
je 0x41c849
cmp dword [ebp - 0x258], 0
je 0x41c849
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x41c647
and eax, 0xfffffffe
jne 0x41c63f
mov eax, 0x80
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
call ebx
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41c708
push 0x206
push eax
lea ecx, [ebp - 0x21a]
push ecx
mov word [ebp - 0x21c], ax
call fcn.00550f40
mov eax, dword [ebp - 0x228]
add esp, 0xc
lea edx, [ebp - 0x21c]
push edx
push 0
push 0x5ae6f8
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x41c708
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 1
lea ecx, [ebp - 0x21c]
push ecx
push edi
call esi
test eax, eax
jne 0x41c6d3
lea edx, [ebp - 0x21c]
push edx
call ebx
push 4
push 0
push edi
call esi
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x264]
mov dword [eax], 1
jmp 0x41c708
lea ecx, [ebp - 0x21c]
push ecx
call ebx
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x41c708
push 2
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 4
push 0
lea eax, [ebp - 0x21c]
push eax
call esi
mov dword [ebp - 0x224], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x224], 0
jne 0x41c77f
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0x250]
mov dword [edx], ecx
mov ecx, eax
lea esi, [ebp - 0x240]
call fcn.0041ae20
mov edx, dword [ebp - 0x234]
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x240]
mov esi, dword [ebp - 0x230]
mov eax, dword [edi + 0x2c]
push ecx
push esi
push eax
push edx
call fcn.00409220
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c7a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41c7a8
mov ecx, dword [ebp - 0x250]
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x230]
mov dword [ecx], 2
mov eax, dword [edx + 0x30]
push esi
push eax
mov eax, dword [ebp - 0x234]
push eax
call fcn.00409220
add esp, 0xc
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c7ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c7f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c81a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x22c]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c83d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
lea eax, [esi - 0x10]
jmp 0x41c8fb
mov ecx, dword [ebp - 0x250]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x244]
add eax, 0xfffffff0
mov dword [ecx], 2
mov dword [ebp - 0x224], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41c885
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c8ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x248]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c8d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c8ee
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c914
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c93a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x220]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41c95d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x260], 0
je 0x41c991
push str.Wow64RevertWow64FsRedirection
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x41c991
mov ecx, dword [ebp - 0x25c]
push ecx
call eax
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0054bd91
mov esp, ebp
pop ebp
ret