Function at 0x47ec45
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x380
push ebx
push esi
push edi
mov dword [ebp + 0x58], ecx
push ecx
lea ecx, [ebp - 0x38]
call fcn.0044646b
mov edx, dword [ebp + 0x70]
xor ebx, ebx
push 2
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x67], 0x2c
xor ecx, ecx
pop esi
jmp 0x47ec99
cmp cx, 0x2a
je 0x47eca1
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x47eca1
cmp cx, 0x3b
je 0x47ec8f
cmp cx, 0x3a
jne 0x47ec94
mov al, byte [edx]
mov byte [ebp + 0x67], al
add edx, esi
mov dword [ebp + 0x70], edx
mov cx, word [edx]
cmp cx, bx
jne 0x47ec72
lea ecx, [ebp - 0x54]
call fcn.0044440f
lea eax, [ebp + 0x70]
push eax
call fcn.0043dcd9
lea eax, [ebp - 0x54]
cdq
xor edi, edi
pop ecx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 8], ebx
mov dword [ebp - 4], 0xfffffff8
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp], ebx
mov dword [ebp + 0x2c], ebx
mov byte [ebp + 0x5f], bl
inc edi
mov esi, dword [ebp + 0x70]
mov ax, word [esi]
cmp ax, 0x2a
je 0x47ed34
cmp ax, 0x2f
je 0x47ed34
cmp ax, 0x2d
jne 0x47f089
cmp ax, 0x2d
jne 0x47ed5e
cmp word [esi + 2], ax
jne 0x47ed5e
xor ecx, ecx
mov cx, word [esi + 4]
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x47f076
cmp cx, bx
je 0x47f076
push 2
lea eax, [ebp + 0x70]
push eax
push 0x4c7ba4
call fcn.0044612d
add esp, 0xc
test al, al
je 0x47ed83
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffe
or eax, 6
jmp 0x47ee70
mov esi, dword [ebp + 0x70]
push 3
add esi, 2
push esi
push 0x4c7ba0
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x47edaa
add dword [ebp + 0x70], 8
mov dword [ebp + 0x60], 6
jmp 0x47edc2
push 7
push esi
push str.delims:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x47ede3
add dword [ebp + 0x70], 0x10
push dword [ebp + 0x58]
or dword [ebp + 0x60], 0xa
lea eax, [ebp + 0x70]
push eax
call fcn.0046f964
mov eax, dword [ebp + 0x70]
mov ax, word [eax]
pop ecx
pop ecx
mov word [ebp + 0x38], ax
jmp 0x47f052
push 0xffffffffffffffff
lea eax, [ebp + 0x70]
push eax
push 0x4c1290
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x47f069
push 0xffffffffffffffff
lea eax, [ebp + 0x70]
push eax
push 0x4bdf24
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x47f069
push edi
lea eax, [ebp + 0x70]
push eax
push 0x4c6014
call fcn.0044612d
add esp, 0xc
test al, al
jne 0x47f060
push 2
lea eax, [ebp + 0x70]
push eax
push 0x4c7314
call fcn.004460ea
add esp, 0xc
test al, al
jne 0x47f060
push edi
lea eax, [ebp + 0x70]
push eax
push 0x4c7b94
call fcn.0044612d
add esp, 0xc
test al, al
je 0x47ee78
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffd
or eax, 0x11
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x60], eax
jmp 0x47ed18
push 3
pop esi
push esi
lea eax, [ebp + 0x70]
push eax
push 0x4c7b90
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47ee99
mov dword [ebp], edi
jmp 0x47ed18
push esi
lea eax, [ebp + 0x70]
push eax
push 0x4c132c
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47eeb7
mov dword [ebp + 8], edi
jmp 0x47ed18
push esi
lea eax, [ebp + 0x70]
push eax
push 0x4c7b8c
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47eed5
mov dword [ebp + 0x18], edi
jmp 0x47ed18
push 4
lea eax, [ebp + 0x70]
push eax
push 0x4c7b84
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47eef8
mov dword [ebp + 0x18], 2
jmp 0x47ed18
push 4
lea eax, [ebp + 0x70]
push eax
push str.off
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47ef17
mov dword [ebp + 0x24], edi
jmp 0x47ed18
push 2
lea eax, [ebp + 0x70]
push eax
push 0x4c7b78
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47ef37
or dword [ebp + 0x4c], 0x10
jmp 0x47ed18
push esi
push dword [ebp + 0x70]
push 0x4c7b74
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x47ef68
or dword [ebp + 0x4c], 0x10
add dword [ebp + 0x70], 6
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004504ce
pop ecx
pop ecx
jmp 0x47ed18
push 4
lea eax, [ebp + 0x70]
push eax
push str._O:N
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47ef8b
mov dword [ebp + 0x48], 0x20
jmp 0x47ed18
push 5
lea eax, [ebp + 0x70]
push eax
push str._O:_N
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47efae
mov dword [ebp + 0x48], 0x60
jmp 0x47ed18
push 4
lea eax, [ebp + 0x70]
push eax
push str.cur
call fcn.004460ea
add esp, 0xc
test al, al
je 0x47efcd
mov dword [ebp - 0x24], edi
jmp 0x47ed18
mov esi, dword [ebp + 0x70]
push 6
push esi
push str._size:
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x47f04c
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x54]
add esi, 0xc
push eax
mov dword [ebp + 0x54], esi
call fcn.00448ff4
mov eax, dword [ebp + 0x54]
movzx eax, word [eax]
cmp ax, bx
pop ecx
pop ecx
je 0x47f052
call fcn.0040f4c7
test al, al
jne 0x47f023
add dword [ebp + 0x54], 2
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00448ff4
pop ecx
pop ecx
mov eax, dword [ebp + 0x54]
movzx eax, word [eax]
cmp ax, bx
je 0x47f052
call fcn.0040f4c7
test al, al
jne 0x47f052
add dword [ebp + 0x54], 2
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.00448ff4
pop ecx
pop ecx
jmp 0x47f052
cmp word [esi], 0x2a
jne 0x47f089
lea eax, [ebp + 0x70]
push eax
call fcn.00408ddd
jmp 0x47ef62
or dword [ebp + 0x60], 5
jmp 0x47ed18
mov eax, dword [ebp + 0x60]
and eax, 0xfffffffd
or eax, edi
jmp 0x47ee70
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.0043dcd9
mov esi, dword [ebp + 0x70]
pop ecx
test byte [ebp + 0x4c], 0x10
jne 0x47f092
mov dword [ebp], ebx
mov eax, dword [ebp]
cdq
or dword [ebp - 0x64], eax
mov eax, dword [ebp + 0x48]
or dword [ebp - 0x60], edx
or dword [ebp + 0x4c], eax
lea ecx, [ebp - 0x2c]
call fcn.004441a1
mov edi, 0x4bca2c
push edi
lea ecx, [ebp + 0x54]
call fcn.0044cf2d
push edi
lea ecx, [ebp + 0x40]
call fcn.0044cf2d
push edi
lea ecx, [ebp + 0x34]
call fcn.0044cf2d
cmp dword [ebp + 0x18], ebx
mov edi, esi
je 0x47f186
cmp dword [ebp + 0x60], 1
jne 0x47f186
lea ecx, [ebp + 0x48]
call fcn.004441a1
mov ax, word [esi]
cmp ax, 0x22
jne 0x47f10e
inc esi
inc esi
push 0x22
lea eax, [ebp + 0x70]
mov dword [ebp + 0x70], esi
call fcn.00405636
mov eax, dword [ebp + 0x70]
cmp word [eax], bx
pop ecx
je 0x47f134
add dword [ebp + 0x70], 2
jmp 0x47f134
cmp ax, bx
je 0x47f134
movsx ecx, byte [ebp + 0x67]
movzx edx, ax
cmp ecx, edx
je 0x47f134
call fcn.0040f4c7
test al, al
jne 0x47f134
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x70], esi
jne 0x47f117
lea eax, [ebp + 0x70]
push eax
call fcn.0043dcd9
mov esi, dword [ebp + 0x70]
mov ax, word [esi]
cmp ax, bx
pop ecx
je 0x47f154
movsx ecx, byte [ebp + 0x67]
movzx eax, ax
cmp ecx, eax
jne 0x47f0e7
mov eax, esi
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp + 0x48]
call fcn.004442c5
mov ecx, dword [ebp + 0x58]
push 1
push ebx
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x48]
call fcn.00454cef
mov eax, dword [ebp - 0x38]
lea ecx, [ebp + 0x48]
mov dword [ebp - 0x30], eax
call fcn.0043dd41
jmp 0x47f19d
movsx ax, byte [ebp + 0x67]
push 1
lea ecx, [ebp - 0x38]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0045708a
mov esi, dword [ebp + 0x70]
push ebx
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00446f11
mov eax, dword [ebp - 0x2c]
add esp, 0xc
cmp dword [ebp + 0x60], ebx
mov edx, eax
push 0x5c
mov dword [ebp + 0x70], edx
pop edi
jne 0x47f21c
xor ecx, ecx
mov cx, word [eax]
jmp 0x47f211
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x47f21c
cmp cx, 0x40
jne 0x47f1df
mov dword [ebp - 0xc], 1
jmp 0x47f209
cmp cx, 0x24
jne 0x47f1ee
mov dword [ebp - 0xc], 3
jmp 0x47f209
cmp cx, di
jne 0x47f1ff
cmp word [edx + 2], di
je 0x47f218
or dword [ebp + 0x50], 1
jmp 0x47f209
cmp cx, 0x21
jne 0x47f21c
or dword [ebp + 0x50], 2
inc edx
inc edx
mov cx, word [edx]
mov dword [ebp + 0x70], edx
cmp cx, bx
jne 0x47f1c5
jmp 0x47f21c
mov byte [ebp + 0x5f], 1
lea eax, [ebp + 0x70]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x60]
and eax, 1
pop ecx
mov dword [ebp + 0x14], eax
jne 0x47f23c
push dword [ebp + 0x70]
call fcn.00412ce4
pop ecx
jmp 0x47f23f
mov eax, dword [ebp + 0x70]
cmp dword [ebp + 0x50], ebx
jne 0x47f269
cmp dword [ebp + 0x60], ebx
jne 0x47f26e
cmp byte [ebp + 0x5f], bl
jne 0x47f26e
cmp word [eax], di
jne 0x47f259
cmp word [eax + 2], di
je 0x47f26e
lea ecx, [ebp + 0x40]
push ecx
push eax
call fcn.0041307e
pop ecx
pop ecx
jmp 0x47f277
inc eax
inc eax
cmp word [eax], di
je 0x47f267
push eax
lea ecx, [ebp + 0x40]
call fcn.0044cf95
movsx edi, byte [ebp + 0x67]
movzx eax, word [esi]
cmp edi, eax
jne 0x47f2ac
movsx ax, byte [ebp + 0x67]
push 1
inc esi
inc esi
lea ecx, [ebp - 0x38]
mov dword [ebp + 0x70], esi
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0045708a
push ebx
lea ecx, [ebp + 0x54]
push ecx
push eax
call fcn.00446f11
mov esi, dword [ebp + 0x70]
add esp, 0xc
cmp dword [ebp + 0x60], ebx
jne 0x47f2e5
movzx eax, word [esi]
cmp edi, eax
jne 0x47f2e5
movsx ax, byte [ebp + 0x67]
lea ecx, [ebp - 0x8c]
inc esi
inc esi
mov dword [ebp + 0x70], esi
push eax
push ecx
push 1
push eax
lea eax, [ebp + 0x70]
push eax
lea ecx, [ebp - 0x38]
call fcn.0045708a
push eax
call fcn.0044715e
mov esi, dword [ebp + 0x70]
add esp, 0xc
cmp dword [ebp - 0x8c], ebx
jg 0x47f2f7
mov dword [ebp - 0x8c], 0xfffffff8
movzx eax, word [esi]
cmp eax, edi
je 0x47f306
xor esi, esi
inc esi
jmp 0x47fb18
inc esi
lea eax, [ebp + 0x70]
inc esi
push eax
mov dword [ebp + 0x70], esi
call fcn.0043dcd9
pop ecx
push 0xffffffffffffffff
push dword [ebp + 0x70]
lea ecx, [ebp + 0x34]
call fcn.004442c5
mov esi, dword [ebp + 0x34]
cmp word [esi], 0x2a
jne 0x47f335
cmp word [esi + 2], bx
mov byte [ebp + 0x67], 1
je 0x47f338
mov byte [ebp + 0x67], bl
lea ecx, [ebp - 0x48]
call fcn.004441a1
cmp byte [ebp + 0x67], bl
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
jne 0x47f358
push 0xffffffffffffffff
push dword [ebp + 0x54]
lea ecx, [ebp - 0x48]
call fcn.004442c5
mov eax, dword [ebp + 0x78]
cmp eax, ebx
mov dword [ebp + 0xc], ebx
je 0x47f366
mov edi, dword [eax]
jmp 0x47f368
xor edi, edi
cmp word [esi], bx
mov dword [ebp + 0x1c], edi
jne 0x47f38b
cmp edi, ebx
je 0x47f38b
mov ecx, dword [ebp + 0x58]
mov cx, word [ecx + 0x5a]
cmp cx, word [edi]
jne 0x47f38b
mov ecx, dword [ebp + 0x58]
push ebx
push ebx
push eax
call fcn.004433f2
push 0x32a
lea ecx, [ebp - 0x1c]
call fcn.004441bf
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x58]
and word [eax + 0x88], 0x8b
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x78], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x3c], ebx
jne 0x47f3d8
cmp edi, ebx
je 0x47f3d8
mov ecx, dword [ebp + 0x58]
mov cx, word [ecx + 0x5a]
cmp cx, word [edi]
mov dword [ebp + 0x30], 0x100
je 0x47f3db
mov dword [ebp + 0x30], ebx
mov ecx, dword [ebp + 0x54]
cmp word [ecx], bx
je 0x47f3f4
cmp ax, bx
jne 0x47f3f4
cmp dword [ebp + 0x30], ebx
mov dword [ebp - 0x14], 1
je 0x47f3f7
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp + 0x60]
mov esi, dword [ebp + 0x40]
and eax, 4
mov dword [ebp - 0x20], ebx
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x18], eax
je 0x47f45b
mov edi, 0x4d8d1c
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x58]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x40]
call fcn.004108b2
cmp eax, ebx
jne 0x47f43d
push edi
mov dword [ebp - 0x3c], 2
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47fac3
mov ecx, dword [eax + 0x10]
shr ecx, 1
push ecx
push dword [eax + 4]
lea ecx, [ebp - 0x20]
call fcn.004442c5
mov esi, dword [ebp - 0x20]
push edi
mov dword [ebp + 0x70], esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test byte [ebp + 0x60], 2
je 0x47f53d
mov dword [ebp + 0x24], ebx
jmp 0x47f52c
mov eax, dword [ebp + 0x58]
test byte [eax + 0x88], 0xef
jne 0x47f535
cmp word [ebp + 0x38], bx
mov dword [ebp + 0x78], esi
lea eax, [ebp + 0x70]
je 0x47f494
push dword [ebp + 0x38]
call fcn.00405636
pop ecx
jmp 0x47f499
call fcn.004143d1
push dword [ebp + 0x78]
mov esi, dword [ebp + 0x70]
mov di, word [esi]
push dword [ebp + 0x54]
mov ecx, dword [ebp + 0x58]
mov word [esi], bx
call fcn.004438ac
cmp word [ebp + 0x38], bx
jne 0x47f4c8
cmp di, 0xd
jne 0x47f4c8
cmp word [esi + 2], 0xa
jne 0x47f4cd
add esi, 4
jmp 0x47f4cf
cmp di, bx
je 0x47f4d2
inc esi
inc esi
mov dword [ebp + 0x70], esi
inc dword [ebp + 0x3c]
cmp dword [ebp + 0x30], ebx
je 0x47f4fa
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x58]
add eax, 2
push 0x4bca2c
mov dword [ebp + 0xc], eax
push ebx
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0x74]
call fcn.004780f5
jmp 0x47f512
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x47f512
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x58]
push ebx
push dword [ebp + 0x74]
push eax
call fcn.0043362f
mov ecx, dword [ebp + 0x58]
mov ax, word [ecx + 0x88]
test ah, 1
je 0x47f52c
and ax, 0xfeff
mov word [ecx + 0x88], ax
cmp word [esi], bx
jne 0x47f46d
lea ecx, [ebp + 0x24]
jmp 0x47f817
cmp dword [ebp + 0x14], ebx
je 0x47f821
cmp dword [ebp - 0x18], ebx
je 0x47f558
lea eax, [ebp + 0x70]
push eax
call fcn.0043dcd9
mov esi, dword [ebp + 0x70]
pop ecx
mov eax, dword [ebp + 0x18]
fldz
fstp qword [ebp - 0x10]
dec eax
cmp dword [ebp + 0x2c], ebx
fldz
fstp qword [ebp - 0x28]
mov dword [ebp + 0x50], ebx
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x10], 1
mov dword [ebp + 0x14], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov byte [ebp + 0x47], bl
mov byte [ebp + 0x5f], bl
mov byte [ebp + 0x7b], bl
mov byte [ebp + 0x46], bl
je 0x47f808
lea eax, [ebp + 0x47]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x4c]
push eax
mov dword [ebp + 0x4c], esi
call fcn.00444a5b
fstp qword [ebp - 8]
lea eax, [ebp + 0x4c]
push eax
call fcn.0043dcd9
lea eax, [ebp + 0x5f]
push eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00444a5b
fstp qword [ebp - 0x10]
lea eax, [ebp + 0x4c]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
sub eax, 1
mov dword [ebp + 4], eax
lea eax, [ebp + 0x7b]
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x4c]
sbb ecx, ebx
push eax
mov dword [ebp + 8], ecx
call fcn.00444a5b
fstp qword [ebp - 0x28]
mov al, byte [ebp + 0x7b]
add esp, 0x2c
test al, 2
je 0x47f615
lea ecx, [ebp + 0x50]
call fcn.0043dd41
mov esi, 0x80070057
jmp 0x47faf8
or al, byte [ebp + 0x5f]
or al, byte [ebp + 0x47]
test al, 1
setne al
inc al
cmp al, 1
mov byte [ebp + 0x46], al
jne 0x47f63c
cmp dword [ebp + 0x10], ebx
jne 0x47f808
cmp dword [ebp + 0x14], ebx
je 0x47f603
jmp 0x47f808
fld qword [ebp - 0x10]
fld qword [0x4c0950]
fucompp
fnstsw ax
test ah, 0x44
jp 0x47f808
jmp 0x47f603
mov ecx, dword [ebp + 0x58]
test byte [ecx + 0x88], 0xef
jne 0x47f814
cmp dword [ebp + 0x2c], ebx
mov edi, esi
mov dword [ebp + 0x78], ebx
je 0x47f732
cmp byte [ebp + 0x46], 1
jne 0x47f6b2
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp + 8]
jg 0x47f814
mov edi, dword [ebp + 0x20]
jl 0x47f692
cmp edi, dword [ebp + 4]
ja 0x47f814
push dword [ebp + 0x54]
push edi
push dword [ebp + 0x58]
call fcn.00446768
mov eax, dword [ebp + 0x14]
add esp, 0xc
add edi, dword [ebp + 0x10]
adc dword [ebp + 0x24], eax
mov dword [ebp + 0x20], edi
jmp 0x47f7ae
fld qword [ebp - 8]
fcomp qword [ebp - 0x28]
fnstsw ax
test ah, 0x41
je 0x47f814
fld qword [ebp - 8]
push 0x4c5194
push ecx
push ecx
lea eax, [ebp - 0x110]
fstp qword [esp]
push eax
call fcn.00497e64
add esp, 0x10
push 0x2e
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
cmp edi, ebx
je 0x47f715
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [edi + eax*2 - 2]
jmp 0x47f706
mov word [eax], bx
dec eax
dec eax
cmp word [eax], 0x30
je 0x47f701
cmp word [eax], 0x2e
jne 0x47f715
mov word [eax], bx
mov ecx, dword [ebp + 0x58]
lea eax, [ebp - 0x110]
push eax
push dword [ebp + 0x54]
call fcn.004438ac
fld qword [ebp - 8]
fadd qword [ebp - 0x10]
fstp qword [ebp - 8]
jmp 0x47f7ae
cmp dword [ebp + 0x18], ebx
je 0x47f771
cmp ax, 0x22
jne 0x47f771
mov ecx, dword [ebp - 0x18]
lea edi, [esi + ecx*2]
jmp 0x47f758
cmp ax, 0x22
jne 0x47f758
mov ax, word [esi + 2]
call fcn.0043dcf9
test al, al
jne 0x47f767
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x70], esi
jne 0x47f745
jmp 0x47f77e
inc esi
inc esi
mov dword [ebp + 0x78], ecx
mov dword [ebp + 0x70], esi
jmp 0x47f77e
lea eax, [ebp + 0x70]
push eax
call fcn.00405676
mov esi, dword [ebp + 0x70]
pop ecx
mov eax, dword [ebp + 0x78]
add eax, eax
sub esi, eax
sub esi, edi
sar esi, 1
push esi
push edi
lea ecx, [ebp + 0x50]
call fcn.004442c5
lea eax, [ebp + 0x70]
push eax
call fcn.0043dcd9
pop ecx
push dword [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.004438ac
mov esi, dword [ebp + 0x70]
inc dword [ebp + 0x3c]
cmp dword [ebp + 0x30], ebx
je 0x47f7d6
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x58]
add eax, 2
push 0x4bca2c
mov dword [ebp + 0xc], eax
push ebx
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0x74]
call fcn.004780f5
jmp 0x47f7ee
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x47f7ee
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x58]
push ebx
push dword [ebp + 0x74]
push eax
call fcn.0043362f
mov ecx, dword [ebp + 0x58]
mov ax, word [ecx + 0x88]
test ah, 1
je 0x47f808
and ax, 0xfeff
mov word [ecx + 0x88], ax
mov ax, word [esi]
cmp ax, bx
jne 0x47f654
lea ecx, [ebp + 0x50]
call fcn.0043dd41
jmp 0x47fac3
push dword [ebp + 0x40]
call fcn.00412ce4
pop ecx
push eax
lea ecx, [ebp + 0x40]
call fcn.0044cf95
mov esi, dword [ebp + 0x40]
cmp word [esi], bx
je 0x47fac3
cmp dword [ebp + 0x50], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x73], bl
je 0x47f8d7
cmp dword [ebp - 0x24], ebx
je 0x47f889
lea eax, [ebp - 0x318]
push eax
push 0x104
mov word [ebp - 0x318], bx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov eax, dword [ebp - 0x318]
cmp ax, 0x61
mov dword [ebp + 0x38], eax
jb 0x47f889
cmp ax, 0x7a
ja 0x47f889
and eax, 0xffdf
mov dword [ebp + 0x38], eax
mov esi, dword [ebp + 0x48]
mov eax, dword [ebp - 0x1c]
mov word [esi + 2], bx
mov word [esi], bx
push esi
mov word [eax + 2], bx
push 0x324
mov word [eax], bx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov al, byte [ebp + 0x50]
and al, 2
mov edi, esi
mov byte [ebp + 0x7b], al
jmp 0x47f8c2
push esi
mov edi, esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp word [esi], bx
jne 0x47f8b5
cmp byte [ebp + 0x7b], bl
jne 0x47f8cf
mov edi, dword [ebp + 0x48]
mov dword [ebp + 0x78], edi
jmp 0x47f9ee
mov edi, dword [ebp + 0x78]
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x40], ebx
cmp dword [ebp + 0x30], ebx
jne 0x47f8f9
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
jne 0x47f8f9
cmp dword [ebp - 0x14], ebx
je 0x47fac3
mov edi, dword [ebp + 0x78]
cmp dword [ebp + 8], ebx
je 0x47f91e
xor eax, eax
mov ax, word [esi]
cmp ax, bx
je 0x47f91e
cmp word [esi + 2], 0x3a
jne 0x47f91e
push eax
call fcn.004a96ad
test eax, eax
pop ecx
je 0x47f9e5
lea ecx, [ebp + 0x60]
call fcn.004441a1
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x60]
push eax
push esi
mov dword [ebp + 0x2c], ebx
call fcn.004959d9
add esp, 0xc
cmp dword [ebp + 0x24], ebx
je 0x47f94e
mov eax, dword [ebp + 0x2c]
sub eax, dword [ebp + 0x60]
sar eax, 1
cdq
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp dword [ebp], ebx
je 0x47f98f
push 4
call fcn.004aa2e8
cmp eax, ebx
pop ecx
je 0x47f96c
lea ecx, [ebp + 0x60]
push ecx
mov ecx, eax
call fcn.0044cf7e
jmp 0x47f96e
xor eax, eax
push eax
lea ecx, [ebp - 0x54]
call fcn.0040f521
cmp dword [ebp + 0x50], ebx
je 0x47f98f
cmp word [edi], bx
je 0x47f98f
lea ecx, [ebp + 0x60]
mov byte [ebp + 0x73], 1
call fcn.0043dd41
jmp 0x47f9ee
push dword [ebp + 0x7c]
mov esi, dword [ebp + 0x58]
push dword [ebp - 4]
lea eax, [ebp - 0x8c]
push eax
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x30]
or eax, dword [ebp + 0x4c]
mov ecx, esi
or eax, dword [ebp - 0xc]
push eax
push dword [ebp + 0x1c]
lea eax, [ebp - 0x48]
push dword [ebp + 0x74]
push dword [ebp + 0x60]
push eax
call fcn.0047e57a
add dword [ebp + 0x3c], eax
mov ax, word [esi + 0x88]
test ah, 1
mov byte [ebp + 0x73], bl
je 0x47f9dd
and ax, 0xfeff
mov word [esi + 0x88], ax
lea ecx, [ebp + 0x60]
call fcn.0043dd41
cmp dword [ebp + 0x50], ebx
je 0x47fa77
cmp word [edi], bx
je 0x47fa77
lea eax, [ebp - 0x8c]
cmp dword [eax], ebx
je 0x47fa77
mov eax, dword [ebp + 0x58]
test byte [eax + 0x88], 0xef
jne 0x47fa77
push 0xffffffffffffffff
push edi
lea ecx, [ebp + 0x28]
call fcn.004442c5
push dword [ebp + 0x40]
lea ecx, [ebp + 0x28]
call fcn.0044420d
cmp dword [ebp - 0x24], ebx
jne 0x47fa65
test byte [ebp + 0x50], 2
je 0x47fa46
dec edi
dec edi
jmp 0x47fa3c
lea eax, [edi - 2]
cmp word [eax], bx
je 0x47fa54
mov edi, eax
cmp edi, dword [ebp + 0x48]
mov dword [ebp + 0x78], edi
ja 0x47fa32
jmp 0x47fa54
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [edi + eax*2 + 2]
mov dword [ebp + 0x78], edi
mov esi, dword [ebp + 0x28]
mov ax, word [ebp + 0x38]
cmp ax, word [esi]
je 0x47f9ee
jmp 0x47f8e0
mov esi, dword [ebp + 0x28]
mov ax, word [ebp + 0x38]
mov word [esi], ax
mov dword [ebp - 0x24], ebx
jmp 0x47f8e0
cmp byte [ebp + 0x73], bl
je 0x47fac3
push 4
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.004443d2
mov eax, dword [eax]
mov eax, dword [eax]
add esp, 0x10
push dword [ebp + 0x7c]
lea ecx, [ebp - 0x8c]
push dword [ebp - 4]
push ecx
push dword [ebp + 0x34]
mov ecx, dword [ebp + 0x30]
or ecx, dword [ebp + 0x4c]
or ecx, dword [ebp - 0xc]
push ecx
push dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x58]
push dword [ebp + 0x74]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0047e57a
add dword [ebp + 0x3c], eax
mov ecx, dword [ebp + 0x58]
and word [ecx + 0x88], 0x8b
cmp byte [ebp + 0x67], bl
je 0x47fae1
push dword [ebp - 0x48]
push dword [ebp + 0x54]
call fcn.004438ac
jmp 0x47faf5
cmp dword [ebp - 0x14], ebx
je 0x47faf5
push dword [ebp + 0x54]
push dword [ebp + 0x3c]
push ecx
call fcn.00446768
add esp, 0xc
mov esi, dword [ebp - 0x3c]
lea ecx, [ebp - 0x20]
call fcn.0043dd41
lea ecx, [ebp + 0x28]
call fcn.0043dd41
lea ecx, [ebp - 0x1c]
call fcn.0043dd41
lea ecx, [ebp - 0x48]
call fcn.0043dd41
lea ecx, [ebp + 0x34]
call fcn.0043dd41
lea ecx, [ebp + 0x40]
call fcn.0043dd41
lea ecx, [ebp + 0x54]
call fcn.0043dd41
lea ecx, [ebp - 0x2c]
call fcn.0043dd41
lea ecx, [ebp - 0x54]
call fcn.00455fb5
lea ecx, [ebp - 0x54]
call fcn.0043dd41
lea ecx, [ebp - 0x38]
call fcn.0043dd41
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10