Function at 0x41ecfb
Capabilities:
Get disk information
Get graphical window text
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x170
push ebx
push esi
push edi
push 2
pop ebx
mov byte [ebp - 0x11], cl
lea ecx, [ebp - 0xbc]
mov dword [ebp - 8], 8
push ebx
mov dword [ebp - 0x18], edx
call fcn.00415aed
mov dword [ebp - 0xc], 0xe7504ed0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x10], 0xfffffff8
mov dword [ebp - 4], eax
mov dword [ebp - 4], eax
jmp 0x41ed51
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + edx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x41ed42
mov edx, dword [ebp - 8]
xor ebx, ebx
mov ecx, dword [ebp - 8]
cmp edx, ecx
mov esi, dword [ebp - 0xbc]
setge bl
xor ecx, ecx
push 7
cmp ebx, dword [esi + 4]
sete cl
xor edi, edi
mov dword [ebp - 0xc], ecx
inc edi
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
xor ecx, ecx
cmp dword [esi + 4], edi
setne cl
imul edx, ecx
neg edx
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
imul ecx, edx, 0xfe8e
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 8]
cmp dword [esi + 4], eax
mov ecx, dword [ebp - 8]
setle bl
xor edx, edx
cmp ebx, ecx
setge dl
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x10]
pop edx
cmp edx, ecx
sbb ecx, ecx
neg ecx
imul ecx, dword [esi + 4]
cmp ecx, 0x33db
jne 0x41eddb
mov edx, eax
cmp dword [ebp - 4], eax
je 0x41eddd
mov edx, edi
mov ecx, dword [ebp - 8]
add ecx, edx
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edi
cmp dword [ebp - 8], eax
jl 0x41ee3b
mov dword [ebp - 0x24], 0xefec
mov dword [ebp - 4], eax
jmp 0x41ee31
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0xc], eax
jl 0x41ee2e
mov dword [ebp - 0x1c], 0x2440
mov dword [ebp - 0x10], eax
jmp 0x41ee21
mov byte [ebp - 0x2d], al
cmp byte [ebp - 0x2d], 0
je 0x41ee1e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jle 0x41ee0d
inc dword [ebp - 0x1c]
dec dword [ebp - 0xc]
jns 0x41ee01
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jle 0x41edf9
dec dword [ebp - 8]
jns 0x41eded
lea ecx, [ebp - 0xbc]
call fcn.00415bbf
cmp byte [ebp - 0x11], 0
je 0x41f4f5
push dword [ebp - 0x18]
movdqa xmm0, xmmword [0xab91f0]
lea eax, [ebp - 0x128]
push eax
xor esi, esi
mov dword [ebp - 0xc], 0x19d29be1
lea eax, [ebp - 0x138]
mov dword [ebp - 8], 0xcc72b752
push eax
push esi
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], esi
movdqu xmmword [ebp - 0x138], xmm0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
call fcn.004172a5
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], 0xfffffffd
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
push 4
setg bl
imul ebx, dword [ebp - 0xc]
pop edx
push 3
pop edi
test ebx, ebx
je 0x41f0c8
mov dword [ebp - 8], eax
inc esi
cmp dword [ebp - 8], edx
jge 0x41eed6
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0xa4], esi
inc dword [ebp - 8]
jmp 0x41eec2
mov dword [ebp - 8], eax
jmp 0x41eee9
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x4c], 0x6d64bda9
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x41eedb
mov dword [ebp - 0xc], edx
jmp 0x41efbc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], eax
jl 0x41efb6
mov dword [ebp - 4], 0xdf3d37a5
mov dword [ebp - 4], eax
jmp 0x41efa1
cmp dword [ebp - 0x10], eax
je 0x41ef21
mov ecx, esi
cmp dword [ebp - 0xc], eax
jne 0x41ef23
mov ecx, eax
mov edx, dword [ebp - 0xa4]
xor ebx, ebx
imul edx, ecx
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
mov ecx, dword [ebp - 0x48]
sete bl
xor edx, edx
add ebx, 0x87a5
cmp ebx, ecx
setge dl
xor ecx, ecx
cmp edx, 0xfffffff9
setl cl
cmp ecx, dword [ebp - 0x10]
je 0x41ef5a
cmp dword [ebp - 0x4c], eax
jne 0x41ef5a
mov esi, eax
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
push 1
mov edx, dword [ebp + ecx*4 - 0xa4]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp + ecx*4 - 0xa4]
cmp edx, ecx
mov ecx, dword [ebp - 0xc]
setne bl
mov dword [ebp - 0x34], ebx
xor ebx, ebx
cmp esi, 0xfd43
pop esi
setle bl
xor edx, edx
cmp ebx, ecx
setge dl
xor ecx, ecx
cmp dword [ebp - 0x34], edx
setg cl
add ecx, 2
mov dword [ebp - 8], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jle 0x41ef15
dec dword [ebp - 0x10]
push 1
pop esi
jns 0x41ef06
dec dword [ebp - 0xc]
push 1
pop esi
cmp dword [ebp - 0xc], 0xfffffff3
jl 0x41eef7
mov dword [ebp - 8], 0xfffffff1
cmp dword [ebp - 8], 0x13
je 0x41f09a
mov esi, dword [ebp - 0x64]
mov dword [ebp - 4], eax
jmp 0x41efed
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x58], 0x3f0b
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x41efdf
cmp dword [ebp - 0xc], eax
je 0x41f038
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0xa0], eax
jne 0x41f020
cmp dword [ebp - 0x58], eax
jne 0x41f020
mov ecx, eax
jmp 0x41f023
xor ecx, ecx
inc ecx
cmp ecx, 0xf21ddbc7
sbb ecx, ecx
neg ecx
cmp ecx, dword [ebp - 8]
je 0x41f035
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0xa0], eax
je 0x41f04f
cmp dword [ebp - 8], eax
je 0x41f04f
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x41f051
mov edx, eax
xor ecx, ecx
cmp edx, 0xffffffff
setle cl
xor ebx, ebx
cmp ecx, 0x5d0bc5de
mov ecx, dword [ebp - 8]
setge bl
xor edx, edx
cmp ebx, ecx
setle dl
xor ebx, ebx
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
neg edx
cmp edx, ecx
mov ecx, dword [ebp - 0x54]
setne bl
xor edx, edx
cmp ebx, ecx
setle dl
mov dword [esi + 8], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x13
jne 0x41efda
xor ebx, ebx
inc ebx
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x64]
call fcn.00415bbf
push ebx
lea ecx, [ebp - 0xec]
call fcn.00415aed
xor esi, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x24], 0x3111738a
mov dword [ebp - 8], esi
jmp 0x41f16a
xor ebx, ebx
mov dword [ebp - 0x34], 0x330c202e
inc ebx
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x10], ebx
push 2
call fcn.00415aed
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x41f0fc
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + edx*4], 0xbeaaf72a
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x41f0e9
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x41f11f
push 0x101d
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
xor eax, eax
cmp dword [ebp - 0xc], eax
je 0x41f127
mov ecx, dword [ebp - 0x34]
cmp dword [ebp - 8], eax
jne 0x41f12f
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x110]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x110]
call fcn.00415bbf
jmp 0x41f09d
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xec]
mov dword [eax + ecx*4], 0x3ae35568
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x41f157
mov dword [ebp - 8], esi
jmp 0x41f182
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x6c], 0xf7bf
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x41f174
mov eax, dword [ebp - 0xec]
lea ecx, [ebp - 0xec]
mov dword [eax], 0xffffffea
call fcn.00415bbf
mov dword [ebp - 0xc], 0xffffffff
xor eax, eax
mov dword [ebp - 0x1c], 0xf2c9
mov dword [ebp - 0x24], 0x21f2
mov dword [ebp - 4], eax
jmp 0x41f1c4
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x2c], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x41f1ba
mov dword [ebp - 0xc], eax
jmp 0x41f1dc
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x2c], 0x9dada439
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x41f1ce
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], eax
jg 0x41f308
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x10], 9
mov dword [ebp - 8], eax
cmp dword [ebp - 8], eax
jl 0x41f2f0
mov dword [ebp - 4], 0xded68044
mov dword [ebp - 0x38], 0x7904
mov dword [ebp - 0x34], 0x34d71b36
mov dword [ebp - 4], eax
cmp dword [ebp - 4], eax
jl 0x41f2e7
xor eax, eax
inc eax
mov dword [ebp - 0x10], 0x5a1ec8f9
xor ebx, ebx
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x2c]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
sub edx, ecx
mov ecx, dword [ebp - 0x1c]
cmp edx, ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
sete bl
xor edx, edx
cmp ebx, ecx
setge dl
xor ecx, ecx
cmp edx, 0x15ed
setl cl
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x2c]
imul edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x2c], edx
dec dword [ebp - 4]
jns 0x41f232
xor eax, eax
dec dword [ebp - 8]
jns 0x41f20e
mov ecx, dword [ebp - 0xc]
cmp dword [ebp + ecx*4 - 0x2c], eax
jne 0x41f305
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
jle 0x41f1ed
xor ebx, ebx
inc ebx
mov dword [ebp - 8], eax
mov dword [ebp - 8], 0x11
cmp dword [ebp - 8], 0xffffffeb
je 0x41f387
push 7
pop ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], edi
jle 0x41f37e
xor esi, esi
push edi
lea ecx, [ebp - 0xf8]
call fcn.00415aed
mov dword [ebp - 4], esi
jmp 0x41f358
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x41f345
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf8]
inc dword [eax + 8]
call fcn.00415bbf
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jg 0x41f334
push 7
xor eax, eax
pop ecx
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffeb
jne 0x41f31b
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x11c]
push ebx
call fcn.00415aed
xor eax, eax
mov dword [ebp - 8], 0xe541
mov dword [ebp - 4], eax
jmp 0x41f3b7
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x11c]
mov dword [ecx + edx*4], 0xfffffff6
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x41f3a4
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x41f3cf
push 0x161a
call dword [sym.imp.KERNEL32.dll_ExitThread]
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x10]
jl 0x41f4b3
push 4
lea ecx, [ebp - 0x128]
call fcn.00415aed
push dword [ebp - 0x6c]
movdqa xmm0, xmmword [0xab9240]
lea ecx, [ebp - 0x148]
push ecx
xor eax, eax
mov dword [ebp - 0x24], 0x5934215e
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x24], 0xbf2465cd
push ecx
push eax
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
movdqu xmmword [ebp - 0x158], xmm0
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
call fcn.004172a5
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x41f44a
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x128]
mov dword [ecx + edx*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x41f43b
mov dword [ebp - 0x10], eax
jmp 0x41f495
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0x1009d434
mov dword [ebp - 0x24], 0x2a10aa43
mov dword [ebp - 0x24], 0xe1b1b55
mov dword [ebp - 0x24], 0x67101392
mov dword [ebp - 4], eax
jmp 0x41f48a
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x164], 2
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x41f479
inc dword [ebp - 8]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x1a
jge 0x41f455
lea ecx, [ebp - 0x88]
call fcn.00415bbf
lea ecx, [ebp - 0x128]
call fcn.00415bbf
jmp 0x41f4d4
mov dword [ebp - 8], eax
jmp 0x41f4ce
mov dword [ebp - 0x20], 0x2bf35dd7
mov dword [ebp - 0x20], 0x5c22c920
cmp dword [ebp - 0x20], eax
jne 0x41f4d4
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xa
jne 0x41f4b8
lea ecx, [ebp - 0x11c]
call fcn.00415bbf
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [eax + ecx*4], 0x4215e1ab
jmp 0x41fb62
push 2
pop ebx
mov dword [ebp - 0x10], 0x5d6c05ba
lea ecx, [ebp - 0xd4]
push ebx
call fcn.00415aed
xor esi, esi
mov dword [ebp - 4], esi
jmp 0x41f522
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xd4]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x41f512
mov dword [ebp - 0x10], esi
cmp dword [ebp - 0x10], ebx
jl 0x41f593
mov dword [ebp - 0x1c], 0xd210ec32
mov dword [ebp - 0x20], 0x8aaf0a9b
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x20]
cmp edi, eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
neg eax
sbb eax, eax
xor ecx, ecx
add eax, 0x80e6edae
cmp eax, 0x7b5cf1c9
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setl bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0xd4]
setl cl
mov dword [eax], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jge 0x41f52f
lea ecx, [ebp - 0xd4]
call fcn.00415bbf
mov dword [ebp - 0x10], edi
xor eax, eax
mov dword [ebp - 4], 0xfffffffe
xor esi, esi
mov dword [ebp - 0x18], edi
inc esi
push 3
mov dword [ebp - 4], eax
pop edi
cmp dword [ebp - 4], edi
jge 0x41f5ca
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x170], esi
inc dword [ebp - 4]
jmp 0x41f5b6
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], al
je 0x41f5e0
push 0x8d0
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xe
push 4
pop ebx
jle 0x41f659
push ebx
lea ecx, [ebp - 0x104]
call fcn.00415aed
xor eax, eax
mov dword [ebp - 4], eax
jmp 0x41f60e
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + edx*4], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jl 0x41f5ff
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 4], edi
cmp dword [ebp - 4], eax
jl 0x41f643
mov dword [ebp - 0x20], 0xde9bf9f
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x104]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
dec dword [ebp - 4]
jns 0x41f622
lea ecx, [ebp - 0x104]
call fcn.00415bbf
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xe
jg 0x41f5ec
xor eax, eax
mov dword [ebp - 0x10], 0x20624039
mov dword [ebp - 0x18], 0x39e3cf95
mov dword [ebp - 0x18], 0xed6f1860
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x20], 0x4151c8b9
mov dword [ebp - 4], eax
jmp 0x41f692
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x68], 0x9ab5c294
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x41f684
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xfffffffc
jge 0x41f749
mov ecx, 0x44142b91
mov dword [ebp - 4], 0x76ff55e0
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 5
jge 0x41f73c
push dword [ebp - 0x68]
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x18], 0xa1fa
push ecx
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x18], eax
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x94], eax
push eax
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x90], eax
movdqu xmmword [ebp - 0x148], xmm0
mov dword [ebp - 0x8c], eax
call fcn.004172a5
mov dword [ebp - 0x18], 0xca9869ec
lea ecx, [ebp - 0x94]
dec dword [ebp - 0x20]
call fcn.00415bbf
inc dword [ebp - 4]
cmp dword [ebp - 4], 5
push 0
pop eax
jl 0x41f6d2
mov ecx, 0x44142b91
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffffc
jl 0x41f6a9
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x41f75b
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
xor eax, eax
mov byte [ebp - 0x2d], al
lea ecx, [ebp - 0xc8]
mov dword [ebp - 8], esi
push 2
call fcn.00415aed
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x41f77f
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x44], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x41f775
mov dword [ebp - 8], eax
jmp 0x41f799
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc8]
or dword [ecx + edx*4], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x41f789
mov dword [ebp - 8], 2
cmp dword [ebp - 8], eax
jl 0x41f926
push 2
pop edi
push edi
lea ecx, [ebp - 0xb0]
call fcn.00415aed
mov dword [ebp - 0x18], 0x9b41dbc4
xor eax, eax
mov dword [ebp - 0x10], 0xb167d3d8
mov dword [ebp - 4], eax
jmp 0x41f7e2
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + edx*4], edi
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x41f7d3
mov esi, dword [ebp - 0xb0]
mov dword [esi + 4], edi
xor edi, edi
inc edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x24], 0x2089ce3
mov dword [ebp - 0x34], 2
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
xor ecx, ecx
cmp dword [esi + 4], ecx
setne cl
xor edx, edx
cmp ecx, 0xe0c0
sete dl
xor ecx, ecx
cmp dword [esi + 4], edx
setge cl
cmp ecx, edi
jle 0x41f86e
mov dword [ebp - 0x18], 0xfa1b4415
inc dword [ebp - 0x10]
jmp 0x41f901
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jg 0x41f901
mov ecx, dword [esi + 4]
mov ecx, dword [ebp + ecx*4 - 0x44]
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
je 0x41f890
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], eax
jl 0x41f8f5
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 2
jg 0x41f8dd
mov edi, dword [ebp - 0xc8]
mov ecx, dword [esi + 4]
mov edx, 0x8afc
mov ecx, dword [ebp + ecx*4 - 0x44]
sub edx, ecx
mov dword [edi + 4], edx
mov ecx, dword [esi + 4]
cmp dword [ebp + ecx*4 - 0x44], eax
jne 0x41f8dd
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jle 0x41f8ba
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x41f8f0
push eax
push eax
call dword [sym.imp.USER32.dll_CopyRect]
xor eax, eax
dec dword [ebp - 0xc]
jns 0x41f8ab
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jle 0x41f87e
xor edi, edi
inc edi
dec dword [esi + 4]
jns 0x41f7f3
lea ecx, [ebp - 0xb0]
call fcn.00415bbf
dec dword [ebp - 8]
jns 0x41f7af
push 3
xor esi, esi
xor eax, eax
pop edi
inc esi
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x41f936
push eax
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp - 0xc8]
call fcn.00415bbf
cmp byte [ebp - 0x2d], 0
je 0x41fab1
mov dword [ebp - 0xc], 0xffffffff
xor eax, eax
mov dword [ebp - 0x10], 0xf2c9
mov dword [ebp - 0x24], 0x21f2
mov dword [ebp - 4], eax
jmp 0x41f971
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x28], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x41f967
mov dword [ebp - 0xc], eax
jmp 0x41f989
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x28], 0x9dada439
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x41f97b
mov dword [ebp - 0xc], eax
jmp 0x41faa0
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0x34], 0xfffffffa
mov dword [ebp - 0x1c], 9
mov dword [ebp - 8], eax
cmp dword [ebp - 8], eax
jl 0x41fa94
mov dword [ebp - 4], 0xded68044
mov dword [ebp - 0x20], 0x7904
mov dword [ebp - 0x18], 0x34d71b36
mov dword [ebp - 4], eax
cmp dword [ebp - 4], eax
jl 0x41fa8b
mov dword [ebp - 0x38], 0x5a1ec8f9
xor ebx, ebx
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], 0xffffffff
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp + ecx*4 - 0x28]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], esi
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
sub edx, ecx
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
sete bl
xor edx, edx
cmp ebx, ecx
setge dl
xor ecx, ecx
cmp edx, 0x15ed
setl cl
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x28]
imul edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x28], edx
dec dword [ebp - 4]
jns 0x41f9d8
dec dword [ebp - 8]
jns 0x41f9b7
mov ecx, dword [ebp - 0xc]
cmp dword [ebp + ecx*4 - 0x28], eax
jne 0x41faa9
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], eax
jle 0x41f996
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetCommTimeouts]
mov dword [ebp - 0xc], 0xf9c2
lea ecx, [ebp - 0xe0]
xor esi, esi
mov dword [ebp - 0x1c], 0x66e9f086
mov dword [ebp - 0x34], esi
push edi
call fcn.00415aed
mov dword [ebp - 0x18], 0xae9f
mov dword [ebp - 4], esi
jmp 0x41faef
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4], 1
inc dword [ebp - 4]
cmp dword [ebp - 4], edi
jl 0x41fadc
inc dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0xc]
add edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0xe0]
setne dl
mov dword [eax + 8], edx
call fcn.00415bbf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret