Function at 0x41e190
Capabilities:
Delete directory
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x470d78
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x48e110]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00403080
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x10]
push edx
mov ebx, str._bugreport.exe
mov dword [ebp - 4], 0
call fcn.00402c10
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x10]
add esp, 4
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x18]
push ecx
mov ebx, str.crash.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 2
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e264
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e257
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e257
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e24f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e264
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e287
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, 0x47935c
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 3
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e30b
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e2fe
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e2fe
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e2f6
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e30b
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e32e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.decompressor.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 4
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e3b2
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e3a5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e3a5
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e39d
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e3b2
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e3d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.http.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 5
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e459
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e44c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e44c
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e444
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e459
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e47c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.BFVFrame.exe
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e500
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e4f3
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e4f3
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e4eb
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e500
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e523
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.2052.xml
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e5a7
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e59a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e59a
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e592
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e5a7
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e5ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.Language.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 8
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e64e
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e641
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e641
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e639
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e64e
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e671
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.CrtConfig.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 9
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e6f5
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e6e8
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e6e8
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e6e0
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e6f5
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e718
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.dns.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e79c
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e78f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e78f
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e787
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e79c
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e7bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.msvcr100.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e843
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e836
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e836
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e82e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e843
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e866
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.msvcp100.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 0xc
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e8ea
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e8dd
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e8dd
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e8d5
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e8ea
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e90d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.gsc.dll
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 0xd
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41e991
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41e984
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41e984
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41e97c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41e991
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41e9b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004033b0
add eax, 0x10
mov dword [esi], eax
call fcn.004027e0
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ebx, str.Skin_
call fcn.00402c10
add esp, 0xc
mov byte [ebp - 4], 0xe
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41ea38
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41ea2b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41ea2b
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41ea23
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41ea38
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41ea5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x10]
push 0
push ecx
call fcn.004028a0
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x18]
push eax
mov ebx, str.ErrorHtml_
call fcn.00402c10
add esp, 0x10
mov byte [ebp - 4], 0xf
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41eacf
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41eac2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41eac2
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41eaba
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41eacf
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41eaf2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x10]
push 0
push ecx
call fcn.004028a0
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x18]
push eax
mov ebx, str._bin_
call fcn.00402c10
add esp, 0x10
mov byte [ebp - 4], 0x10
mov ecx, dword [eax]
mov esi, dword [ebp - 0x10]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x41eb66
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x41eb59
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41eb59
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41eb51
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x10], ebx
jmp 0x41eb66
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x10]
push ecx
call fcn.004032a0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41eb89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x10]
push 0
push ecx
call fcn.004028a0
mov edx, dword [ebp - 0x14]
add esp, 8
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x41ebca
mov edx, dword [ebp - 0x14]
push 4
push eax
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ebed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ec13
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret