Function at 0x49d7e0
Capabilities:
Get disk size
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x61439b
mov eax, dword fs:[0]
push eax
sub esp, 0x4a0
mov eax, dword [0x69301c]
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 edi, ecx
mov dword [ebp - 0x440], edi
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x4e8]
test ecx, ecx
je 0x49d82e
mov eax, dword [ecx]
push 1
call dword [eax + 4]
lea ebx, [edi + 0x4e4]
mov dword [edi + 0x4e8], 0
push ebx
push ecx
mov esi, esp
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x428], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404800
add esp, 4
add eax, 0x10
mov dword [esi], eax
call fcn.0049e620
test eax, eax
jns 0x49d8bf
mov ecx, 0x6a22d8
cmp eax, 0x80070006
jne 0x49d8b3
push 0x669644
push str.TEXT_BDFIX_FAILED_TO_OPEN
call fcn.0040dc60
push 0x10
push dword [edi + 0x4ec]
mov ecx, edi
push eax
call fcn.004b1fb6
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jmp 0x49dcd3
push 0x669664
push str.TEXT_BDFIX_NOT_SUPPORTED_FILE
jmp 0x49d881
jne 0x49d8f3
cmp dword [ebx], 1
mov ecx, 0x6a22d8
jne 0x49dc56
push 0x6696a4
push str.TEXT_BDFIX_NOT_CORRUPTED
call fcn.0040dc60
push 0x24
push dword [edi + 0x4ec]
mov ecx, edi
push eax
call fcn.004b1fb6
cmp eax, 7
je 0x49d896
mov edx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x438]
call fcn.00402980
add esp, 4
mov esi, eax
lea edx, [ebp + 8]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x430]
call fcn.004026e0
push esi
push eax
lea eax, [ebp - 0x448]
mov byte [ebp - 4], 2
push eax
call fcn.004037f0
add esp, 0xc
mov byte [ebp - 4], 3
mov edx, str._fixed.avi
cmp dword [ebx], 2
mov ecx, str._fixed.mp4
cmovne ecx, edx
push ecx
push eax
lea eax, [ebp - 0x428]
push eax
call fcn.004045c0
add esp, 0xc
lea esi, [edi + 0x4f0]
mov byte [ebp - 4], 4
push eax
mov ecx, esi
call fcn.004044d0
mov byte [ebp - 4], 3
or ebx, 0xffffffff
mov edx, dword [ebp - 0x428]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49d989
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49d9aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x430]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49d9cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49d9ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi]
call fcn.00402c50
test eax, eax
je 0x49dd4b
push 0x669784
push str.TEXT_BDFIX_ALREADY_EXISTS
mov ecx, 0x6a22d8
call fcn.0040dc60
push 0x24
push dword [edi + 0x4ec]
mov ecx, edi
push eax
call fcn.004b1fb6
cmp eax, 7
jne 0x49dd4b
mov edx, dword [esi]
lea ecx, [ebp - 0x438]
call fcn.004023a0
push 0x58
lea eax, [ebp - 0x4ac]
mov byte [ebp - 4], 5
push 0
push eax
call fcn.005ee670
add esp, 0xc
lea eax, [ebp - 0x21c]
push dword [ebp - 0x438]
push 0x104
push eax
call fcn.005fdc25
xor eax, eax
add esp, 0xc
mov word [ebp - 0x424], ax
mov ecx, 0x6697a8
mov eax, dword [ebp - 0x450]
mov edi, dword [eax]
cmp edi, 2
mov eax, 0x66981c
cmove eax, ecx
mov ecx, 0x6697f4
push eax
mov eax, 0x669890
cmove eax, ecx
mov ecx, 0x6a22d8
push eax
call fcn.0040dc60
mov esi, eax
cmp edi, 2
mov eax, 0x6697e8
mov ecx, 0x6698e0
cmove ecx, eax
mov eax, 0x669868
push ecx
mov ecx, 0x6698b8
cmove ecx, eax
push ecx
mov ecx, 0x6a22d8
call fcn.0040dc60
push esi
push eax
mov ecx, str._s__.mp4__n.mp4_n_s__.__n._n_n
cmp edi, 2
mov eax, str._s__.avi__n.avi_n_s__.__n._n_n
cmove eax, ecx
push eax
push 0x104
push 0x6a24d0
call fcn.004042d0
mov ecx, 0x6a24d0
add esp, 0x14
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49db00
sub ecx, edx
xor eax, eax
sar ecx, 1
test ecx, ecx
jle 0x49db3a
cmp word [eax*2 + 0x6a24d0], 0xa
jne 0x49db35
cmp eax, 0x104
jae 0x49e417
xor edx, edx
mov word [eax*2 + 0x6a24d0], dx
inc eax
cmp eax, ecx
jl 0x49db15
mov edi, dword [ebp - 0x440]
mov ecx, 0x66c22c
mov dword [ebp - 0x4ac], 0x58
mov dword [ebp - 0x4a4], 0
mov dword [ebp - 0x4a0], 0x6a24d0
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x4a8], eax
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x490], eax
lea eax, [ebp - 0x424]
mov dword [ebp - 0x480], eax
xor eax, eax
cmp dword [edi + 0x4e4], 2
mov dword [ebp - 0x474], eax
mov eax, 0x66c234
cmovne eax, ecx
mov dword [ebp - 0x494], 1
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x4ac]
push eax
mov dword [ebp - 0x49c], 0
mov dword [ebp - 0x498], 0
mov dword [ebp - 0x48c], 0x104
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x484], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x478], 4
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 0
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
test eax, eax
je 0x49dc9d
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x21c]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x49dc6c
test dx, dx
je 0x49dc52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x49dc6c
add eax, 4
add ecx, 4
test dx, dx
jne 0x49dc30
xor eax, eax
jmp 0x49dc71
push 0x6696ec
push str.TEXT_BDFIX_NO_CORRUPTION_KNOWN
call fcn.0040dc60
push 0x30
jmp 0x49d888
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49dcfd
push 0x6698ec
push str.TEXT_BDFIX_SAME_PATH
mov ecx, 0x6a22d8
call fcn.0040dc60
push 0x10
push dword [edi + 0x4ec]
mov ecx, edi
push eax
call fcn.004b1fb6
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49dcbe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x49dcdd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
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.005eb48e
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49dd06
sub ecx, edx
lea eax, [ebp - 0x21c]
sar ecx, 1
lea esi, [edi + 0x4f0]
push ecx
push eax
mov ecx, esi
call fcn.00405050
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49dd4b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esi]
lea ecx, [ebp - 0x430]
xorps xmm0, xmm0
movlpd qword [ebp - 0x43c], xmm0
call fcn.004025f0
lea ecx, [ebp - 0x448]
push ecx
lea ecx, [ebp - 0x428]
push ecx
lea ecx, [ebp - 0x450]
push ecx
lea ecx, [ebp - 0x440]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x49ddb5
mov eax, dword [ebp - 0x440]
mul dword [ebp - 0x450]
push 0
push dword [ebp - 0x428]
push edx
push eax
call fcn.005ec2a0
mov dword [ebp - 0x428], edx
mov byte [ebp - 0x429], 0
jmp 0x49ddce
mov eax, dword [ebp - 0x438]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x43c]
mov byte [ebp - 0x429], 1
mov edx, dword [ebp - 0x430]
mov dword [ebp - 0x448], eax
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49ddf1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x429], 0
jne 0x49dcbe
push 0
push 0
push 3
push 0
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov dword [ebp - 0x440], eax
cmp eax, 0xffffffff
je 0x49de66
lea ecx, [ebp - 0x454]
push ecx
push eax
call esi
push dword [ebp - 0x440]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x49de60
mov esi, dword [ebp - 0x454]
mov dword [ebp - 0x430], esi
mov esi, dword [ebp - 0x450]
mov dword [ebp - 0x438], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
jmp 0x49de7a
mov esi, dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov dword [ebp - 0x438], 0xffffffff
mov dword [ebp - 0x430], 0xffffffff
push 0
push 0
push 3
push 0
push 0
push 0
push dword [edi + 0x4f0]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x440], eax
cmp eax, 0xffffffff
je 0x49dec7
lea ecx, [ebp - 0x454]
push ecx
push eax
call esi
push dword [ebp - 0x440]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x49dec7
mov ecx, dword [ebp - 0x454]
mov edx, dword [ebp - 0x450]
jmp 0x49decc
or ecx, 0xffffffff
or edx, ecx
add ecx, dword [ebp - 0x448]
adc edx, dword [ebp - 0x428]
call fcn.0060e6c0
mov edx, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x430]
movsd qword [ebp - 0x444], xmm0
call fcn.0060e6c0
mulsd xmm0, qword [0x66c710]
comisd xmm0, xmmword [ebp - 0x444]
jbe 0x49e050
call fcn.004a6e1d
mov ecx, eax
test ecx, ecx
je 0x49e426
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x428], eax
push 0x66999c
push str.TEXT_BDFIX_DISK_SPACE
mov ecx, 0x6a22d8
mov byte [ebp - 4], 6
call fcn.0040dc60
mov esi, eax
call fcn.004a6e1d
mov ecx, eax
test ecx, ecx
je 0x49e41c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x438], eax
push esi
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 7
call fcn.00404c40
test al, al
jne 0x49df9d
test esi, esi
jne 0x49df7c
xor ecx, ecx
jmp 0x49df90
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x49df81
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x438]
call fcn.00405050
push str._n_n_s
lea eax, [ebp - 0x438]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x440]
push eax
call fcn.004045c0
add esp, 0xc
mov byte [ebp - 4], 9
push dword [edi + 0x4f0]
push dword [eax]
lea eax, [ebp - 0x428]
push eax
call fcn.00404970
mov byte [ebp - 4], 8
add esp, 0xc
mov edx, dword [ebp - 0x440]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49dff8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov eax, ebx
mov edx, dword [ebp - 0x438]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x49e019
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x428]
mov ecx, edi
push 0x10
push dword [edi + 0x4ec]
push esi
call fcn.004b1fb6
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x49dcbe
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
jmp 0x49dcbb
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0
push eax
push 0x801a
lea ecx, [edi + 0x334]
call fcn.0046e3a0
mov eax, dword [ebp - 0x428]
lea ecx, [edi + 0x334]
mov dword [ebp - 0x440], eax
lea eax, [ebp - 0x428]
push eax
push 0x8014
mov dword [ebp - 0x428], 0
call fcn.0046e3a0
mov eax, dword [ebp - 0x428]
lea ecx, [edi + 0x334]
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x428]
push eax
push 0x8018
mov dword [ebp - 0x428], 0
call fcn.0046e3a0
mov eax, dword [ebp - 0x428]
lea ecx, [edi + 0x334]
mov dword [ebp - 0x430], eax
lea eax, [ebp - 0x428]
push eax
push 0x8013
mov dword [ebp - 0x428], 0
call fcn.0046e3a0
mov esi, dword [ebp - 0x428]
test esi, esi
je 0x49e134
cmp dword [esi + 0x15c], 0
je 0x49e12b
mov eax, dword [esi]
mov ecx, esi
mov dword [esi + 0x15c], 0
call dword [eax + 0x64]
mov ecx, dword [esi + 0x10c]
lea eax, [esi + 0x68]
push eax
call fcn.0047d2d0
mov eax, dword [esi]
mov ecx, esi
push 0
call dword [eax + 0x68]
mov eax, dword [edi + 0x4e4]
cmp eax, 2
jne 0x49e1ed
push pe_nt_image_headers32
call fcn.004a5e80
mov esi, eax
add esp, 4
mov dword [ebp - 0x450], esi
test esi, esi
je 0x49e284
mov ecx, esi
call fcn.0049f400
lea ecx, [esi + 0xc8]
mov dword [esi], vtable.CBandiFixerMp4.0
push ecx
mov dword [esi + 0xc4], 0x80000
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
jmp 0x49e286
cmp eax, 1
jne 0x49dcbe
push 0x138
call fcn.004a5e80
mov esi, eax
add esp, 4
mov dword [ebp - 0x450], esi
test esi, esi
je 0x49e284
mov ecx, esi
call fcn.0049f400
lea eax, [esi + 0xc4]
mov dword [esi], vtable.CBandiFixerAvi.0
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x40
lea eax, [esi + 0xf8]
mov dword [esi + 0xdc], 0
push 0
push eax
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
call fcn.005ee670
add esp, 0xc
jmp 0x49e286
xor esi, esi
mov dword [edi + 0x4e8], esi
push ecx
mov esi, esp
mov dword [ebp - 0x450], esp
mov dword [ebp - 0x428], esi
mov eax, dword [edi + 0x4f0]
sub eax, 0x10
push eax
call fcn.00404800
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xa
mov esi, esp
mov dword [ebp - 0x428], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404800
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov ecx, dword [edi + 0x4e8]
mov eax, dword [ecx]
mov byte [ebp - 4], 0
call dword [eax + 0xc]
test eax, eax
jns 0x49e30b
push 0x6699e4
push 0x6699a8
mov ecx, 0x6a22d8
call fcn.0040dc60
push 0x10
push dword [edi + 0x4ec]
mov ecx, edi
push eax
call fcn.004b1fb6
jmp 0x49dcbe
mov esi, dword [ebp - 0x440]
mov eax, dword [esi + 0xa0]
cmp dword [eax + 0x74], 1
je 0x49e38b
mov dword [eax + 0x74], 1
mov ecx, esi
mov eax, dword [esi]
push 1
call dword [eax + 0x60]
mov eax, dword [esi + 0x10c]
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x440], eax
cmp dword [eax + 0x1cc], 0
je 0x49e35d
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
je 0x49e426
cmp dword [ecx + 8], esi
je 0x49e38b
jmp 0x49e379
push 0
push 0
push dword [0x6a22b4]
push dword [eax + 0x224]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebp - 0x440]
lea ecx, [ebp - 0x450]
push ecx
lea ecx, [eax + 0x1c4]
call fcn.0040a4a0
push ecx
mov esi, esp
mov dword [ebp - 0x440], esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
push eax
call fcn.00404800
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov esi, dword [ebp - 0x448]
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
push eax
push eax
push 0xb1
push dword [esi + 0x110]
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [edi + 0x4f0]
push ecx
mov ecx, esp
call fcn.00402860
mov ecx, dword [ebp - 0x430]
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, edi
call fcn.0049e440
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x49e40d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
jmp 0x49dcdf
call fcn.005eb811
push 0x80004005
call fcn.00405000
push 0x80004005
call fcn.00405000
int3