Function at 0x413940
Capabilities:
Unmount volume via ioctl

Disassembly:
push 0xffffffffffffffff
push 0x47dbab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a0
push ebx
mov ebx, ecx
push esi
lea ecx, [esp + 0x5c]
call fcn.0043a8f0
mov eax, dword [esp + 0x1b8]
xor esi, esi
push str.FAT32
mov dword [esp + 0x1b4], esi
mov ecx, dword [eax]
call fcn.0043af60
test eax, eax
je 0x4139a3
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.0043a990
xor eax, eax
jmp 0x4140e8
mov ecx, ebx
call fcn.004137f0
test eax, eax
jne 0x4139d5
push esi
lea ecx, [ebx + 0x1f0]
call fcn.0043baa0
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1b0], 0xffffffff
call fcn.0043a990
xor eax, eax
jmp 0x4140e8
mov ecx, dword [ebx + 0x50]
push ebp
push edi
push ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], esi
call fcn.0046fea8
mov ebp, eax
add esp, 4
cmp ebp, esi
je 0x414036
mov ecx, dword [ebx + 0x50]
xor eax, eax
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx + 0x50]
push eax
call fcn.0046fea8
add esp, 4
cmp eax, esi
mov dword [esp + 0x18], eax
je 0x414036
mov ecx, dword [ebx + 0x50]
mov edi, dword [esp + 0x18]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx + 0x50]
push eax
call fcn.0046fea8
add esp, 4
cmp eax, esi
mov dword [esp + 0x1c], eax
je 0x414036
mov ecx, dword [ebx + 0x50]
mov edi, dword [esp + 0x1c]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebx + 0x220]
lea eax, [esp + 0x14]
push 0
push eax
push 0
push 0
push 0
push 0
push 0x90018
push ecx
mov ecx, ebx
call fcn.0041d5d0
test eax, eax
jne 0x413aab
call edi
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x14
jl 0x413a72
cmp esi, 0x14
je 0x414036
mov ecx, dword [ebx + 0x220]
lea edx, [esp + 0x14]
push 0
push edx
lea eax, [esp + 0x98]
push 0x18
push eax
push 0
push 0
push 0x70000
push ecx
mov ecx, ebx
call fcn.0041d5d0
test eax, eax
je 0x414036
mov ecx, dword [ebx + 0x220]
lea edx, [esp + 0x14]
push 0
push edx
lea eax, [esp + 0x128]
push 0x90
push eax
push 0
push 0
push 0x70048
push ecx
mov ecx, ebx
call fcn.0041d5d0
cmp eax, 1
jne 0x413b61
mov edx, dword [esp + 0x130]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x134]
mov esi, dword [ebx + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x120]
neg eax
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x144]
sbb eax, eax
not eax
and eax, edx
mov edx, dword [esp + 0x128]
xor edi, edi
mov dword [esp + 0x28], eax
push edi
push esi
push ecx
push edx
jmp 0x413bc0
mov edx, dword [ebx + 0x220]
lea eax, [esp + 0x14]
push 0
push eax
lea ecx, [esp + 0x4c]
push 0x20
push ecx
push 0
push 0
push 0x74004
push edx
mov ecx, ebx
call fcn.0041d5d0
cmp eax, 1
jne 0x414036
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov esi, dword [ebx + 0x50]
mov edx, dword [esp + 0x54]
xor edi, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x44]
push edi
push esi
push eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x34], edx
push ecx
call fcn.00470270
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
push edi
push esi
push edx
push eax
call fcn.00470270
test edx, edx
ja 0x414036
cmp eax, 0x10000
jb 0x414036
test edx, edx
ja 0x414036
jb 0x413c04
cmp eax, 0xffffffff
jae 0x414036
mov edi, str.MSWIN4.1
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp], 0xeb
mov byte [ebp + 1], 0x5a
mov byte [ebp + 2], 0x90
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 3]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cx, word [ebx + 0x50]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov word [ebp + 0xb], cx
push edi
push esi
mov ecx, ebx
call fcn.00413750
and eax, 0xff
mov word [ebp + 0xe], 0x20
mov dword [esp + 0x34], eax
mov byte [ebp + 0xd], al
xor eax, eax
mov byte [ebp + 0x10], 2
mov word [ebp + 0x11], ax
mov word [ebp + 0x13], ax
mov byte [ebp + 0x15], pe_nt_image_headers32
mov word [ebp + 0x16], ax
mov dx, word [esp + 0xa0]
push eax
mov word [ebp + 0x18], dx
mov cx, word [esp + 0xa0]
mov edx, dword [esp + 0x2c]
mov word [ebp + 0x1a], cx
mov dword [ebp + 0x1c], edx
mov ecx, dword [ebx + 0x50]
push ecx
push edi
push esi
call fcn.00470270
mov edx, dword [esp + 0x34]
push 2
and edx, 0xff
mov esi, eax
push edx
push 0x20
push esi
mov ecx, ebx
mov dword [ebp + 0x20], esi
call fcn.004135a0
mov edi, eax
xor eax, eax
mov ecx, ebx
mov dword [esp + 0x38], edi
mov dword [ebp + 0x24], edi
mov word [ebp + 0x28], ax
mov word [ebp + 0x2a], ax
mov dword [ebp + 0x2c], 2
mov word [ebp + 0x30], 1
mov word [ebp + 0x32], 6
mov byte [ebp + 0x40], 0x80
mov byte [ebp + 0x41], al
mov byte [ebp + 0x42], 0x29
call fcn.00413530
mov dword [ebp + 0x43], eax
mov ecx, dword [0x493f50]
lea eax, [ebp + 0x47]
mov dword [ebp + 0x47], ecx
mov edx, dword [0x493f54]
mov dword [eax + 4], edx
mov cx, word [0x493f58]
mov word [eax + 8], cx
mov dl, byte [0x493f5a]
mov byte [eax + 0xa], dl
mov eax, dword [0x493f44]
mov dword [ebp + 0x52], eax
mov ecx, dword [0x493f48]
mov dword [ebp + 0x56], ecx
mov word [ebp + 0x1fe], 0xaa55
mov eax, dword [ebx + 0x50]
cmp eax, 0x200
je 0x413d52
mov byte [eax + ebp - 2], 0x55
mov edx, dword [ebx + 0x50]
mov byte [edx + ebp - 1], 0xaa
mov eax, dword [esp + 0x18]
or ecx, 0xffffffff
add edi, edi
xor edx, edx
mov dword [eax], 0x41615252
mov dword [eax + 0x1e4], 0x61417272
mov dword [eax + 0x1e8], ecx
mov dword [eax + 0x1ec], ecx
mov dword [eax + 0x1fc], 0xaa550000
mov eax, dword [esp + 0x1c]
sub esi, edi
mov ecx, 0xfffffff
sub esi, 0x20
mov dword [eax], 0xffffff8
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov eax, esi
xor ecx, ecx
div dword [esp + 0x34]
test ecx, ecx
mov dword [esp + 0x2c], eax
ja 0x414036
jb 0x413dbe
cmp eax, 0xfffffff
ja 0x414036
test ecx, ecx
ja 0x413dcd
cmp eax, 0x10000
jb 0x414036
mov edx, dword [ebx + 0x50]
xor edi, edi
push edi
push 4
dec edx
push ecx
push eax
mov esi, edx
call fcn.0046fc00
add esi, eax
mov eax, dword [ebx + 0x50]
adc edi, edx
push 0
push eax
push edi
push esi
call fcn.0046fc40
xor ecx, ecx
cmp edx, ecx
ja 0x414036
jb 0x413e06
cmp eax, dword [esp + 0x38]
ja 0x414036
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
lea ecx, [eax - 1]
mov eax, dword [esp + 0x18]
mov dword [eax + 0x1e8], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x1ec], 3
lea eax, [edx + edx]
mov edx, dword [esp + 0x24]
lea eax, [eax + ecx + 0x20]
mov ecx, ebx
push eax
mov eax, dword [esp + 0x24]
push 0
push edx
push eax
call fcn.00413680
test eax, eax
je 0x414036
xor edi, edi
mov esi, edi
mov ecx, dword [esp + 0x24]
neg esi
sbb esi, esi
push ebp
and esi, 6
push 1
mov eax, esi
cdq
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004135f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esi + 1]
cdq
push 1
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004135f0
inc edi
cmp edi, 2
jb 0x413e4e
mov esi, 0x20
mov edi, 2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push eax
mov eax, esi
cdq
push 1
push edx
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
mov ecx, ebx
call fcn.004135f0
mov ecx, dword [esp + 0x38]
add esi, ecx
dec edi
jne 0x413e9e
cmp dword [esp + 0x3c], 1
jne 0x413fac
mov ecx, 0x1e
xor eax, eax
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x120]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0xa8], eax
jne 0x413efd
mov byte [esp + 0xb0], 0xc
jmp 0x413f75
mov eax, dword [0x483898]
mov edx, dword [0x48389c]
mov dword [esp + 0xb0], eax
mov eax, dword [0x4838a0]
mov dword [esp + 0xb4], edx
mov edx, dword [0x4838a4]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x154]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x15c]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ecx
mov edx, dword [ebx + 0x220]
lea eax, [esp + 0x14]
push ecx
push eax
push ecx
push ecx
lea ecx, [esp + 0xb8]
push 0x78
push ecx
push 0x7c04c
push edx
mov ecx, ebx
call fcn.0041d5d0
test eax, eax
jne 0x413fe2
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x414036
jmp 0x413fe2
mov edx, dword [ebx + 0x220]
lea eax, [esp + 0x14]
push 0
push eax
push 0
push 0
lea ecx, [esp + 0x23]
push 1
push ecx
push 0x7c008
push edx
mov ecx, ebx
mov byte [esp + 0x33], 0xc
call fcn.0041d5d0
test eax, eax
jne 0x413fe2
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x414036
mov ecx, dword [ebx + 0x220]
lea eax, [esp + 0x14]
push 0
push eax
push 0
push 0
push 0
push 0
push 0x90020
push ecx
mov ecx, ebx
call fcn.0041d5d0
test eax, eax
je 0x414036
mov eax, dword [ebx + 0x220]
lea edx, [esp + 0x14]
push 0
push edx
push 0
push 0
push 0
push 0
push BeginPaint
push eax
mov ecx, ebx
call fcn.0041d5d0
test eax, eax
je 0x414036
mov dword [esp + 0x40], 1
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x34]
test ebp, ebp
je 0x41404a
push ebp
call fcn.0046fd2e
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41405b
push eax
call fcn.0046fd2e
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41406c
push eax
call fcn.0046fd2e
add esp, 4
mov edi, dword [esp + 0x40]
cmp edi, 1
jne 0x4140d0
mov esi, dword [esp + 0x1c0]
mov eax, dword [esi + 4]
test eax, eax
je 0x4140d0
push 0
lea ecx, [ebx + 0x1b8]
call fcn.0043ba70
movsx eax, al
push eax
lea ecx, [esp + 0x68]
push str._c:_
push ecx
call fcn.0043bde0
mov ecx, dword [esi + 4]
add esp, 0xc
push 0
call fcn.0043baa0
push eax
push 0
lea ecx, [esp + 0x6c]
call fcn.0043baa0
push eax
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelA]
test eax, eax
jne 0x4140d0
mov ecx, dword [esi + 4]
push eax
call fcn.0043baa0
lea ecx, [esp + 0x64]
mov dword [esp + 0x1b8], 0xffffffff
call fcn.0043a990
mov eax, edi
pop edi
pop ebp
mov ecx, dword [esp + 0x1a8]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1ac
ret 4