Function at 0x407a03
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47cdd5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x630
push esi
push edi
mov dword [ebp - 0x5f8], ecx
lea ecx, [ebp - 0x80]
call fcn.0043a8f0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430a80
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a8f0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d510
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a8f0
mov byte [ebp - 4], 4
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x140], 0
push 0x49ad98
push 0x3ff
mov ecx, dword [ebp - 0x5f8]
call fcn.00439da0
cmp dword [ebp + 8], 0
je 0x407aaa
cmp dword [ebp + 8], 2
jne 0x407bb9
push 1
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ba70
movsx eax, al
cmp eax, 0x3a
jne 0x407aef
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ba70
movsx ecx, al
push ecx
push 0x492690
lea edx, [ebp - 0x80]
push edx
call fcn.0043bde0
add esp, 0xc
jmp 0x407b03
mov eax, dword [ebp - 0x5f8]
add eax, 0x288
push eax
lea ecx, [ebp - 0x80]
call fcn.0043ae60
lea ecx, [ebp - 0xc8]
push ecx
lea edx, [ebp - 0x8c]
push edx
lea eax, [ebp - 0x40]
push eax
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
test eax, eax
jne 0x407b40
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
jmp 0x407bb7
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x407bb7
push 0
push 0x400
mov ecx, dword [ebp - 0x88]
push ecx
mov edx, dword [ebp - 0x8c]
push edx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], edx
cmp dword [ebp - 0x5fc], 0
ja 0x407bad
jb 0x407ba1
cmp dword [ebp - 0x600], 0x2f8
jae 0x407bad
mov dword [ebp - 0x140], 1
jmp 0x407bb7
mov dword [ebp - 0xcc], 1
jmp 0x407be5
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0xcc], 0
cmp dword [ebp + 8], 0
je 0x407bf5
cmp dword [ebp + 8], 1
jne 0x407d79
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00430ac0
test eax, eax
jne 0x407d74
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0x3d
push 0x49b760
call fcn.0043d430
add esp, 0xc
push eax
lea ecx, [ebp - 0x80]
call fcn.0043ae00
mov eax, dword [ebp - 0x5f8]
add eax, 0x288
push eax
lea ecx, [ebp - 0x38]
call fcn.0043ae60
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00430b10
cmp eax, 1
jne 0x407ca2
push 0x49ad9c
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ae00
push 0
push 0
push 0x104
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
push 0x3e
push 0x49b760
call fcn.0043d430
add esp, 8
push eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 4]
push edx
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00431480
test eax, eax
jne 0x407d63
mov dword [ebp - 0x5c0], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5c0]
jmp 0x4095e4
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043acd0
jmp 0x408225
push 0x5c
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043b890
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0xffffffff
je 0x407dc4
mov eax, dword [ebp - 0x13c]
add eax, 1
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043bae0
push eax
lea ecx, [ebp - 0xb8]
call fcn.0043ae00
jmp 0x407ddc
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
push ecx
lea ecx, [ebp - 0xb8]
call fcn.0043ae60
lea ecx, [ebp - 0xb8]
call fcn.0043baf0
test eax, eax
je 0x407e15
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00430b10
cmp eax, 1
jne 0x407e71
push 0x5c
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043bf30
push str._TestFile
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ad50
mov edx, dword [0x4a2a70]
or edx, 0x800000
mov dword [0x4a2a70], edx
push 0
mov ecx, dword [ebp - 0x5f8]
call fcn.004053e7
mov eax, dword [0x4a2a70]
and eax, 0xff7fffff
mov dword [0x4a2a70], eax
jmp 0x407fa6
push 0
lea ecx, [ebp - 0xb8]
call fcn.0043ba70
movsx ecx, al
cmp ecx, 0x5f
je 0x407fa6
push 0
lea ecx, [ebp - 0xb8]
call fcn.0043baa0
push eax
push 0x3f
push 0x49b760
call fcn.0043d430
add esp, 0xc
push eax
push 0x4a2a0c
push 0x34
mov edx, dword [ebp - 0x5f8]
push edx
call fcn.00439f20
add esp, 0x10
cmp eax, 7
jne 0x407f20
mov dword [ebp - 0x5c4], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5c4]
jmp 0x4095e4
push 0x5c
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043c2a0
push 0x5c
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043bf30
push 0x5f
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043acf0
push 0
lea ecx, [ebp - 0xb8]
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ad50
mov eax, dword [0x4a2a70]
or eax, 0x800000
mov dword [0x4a2a70], eax
push 0
mov ecx, dword [ebp - 0x5f8]
call fcn.004053e7
mov ecx, dword [0x4a2a70]
and ecx, 0xff7fffff
mov dword [0x4a2a70], ecx
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov dword [ebp - 0x604], edx
mov eax, dword [ebp - 0x604]
mov ecx, dword [ebp - 0x604]
mov edx, dword [eax]
or edx, dword [ecx + 4]
test edx, edx
jne 0x408053
push 0
push 0x40
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0x4a2a0c
push 0x30
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
mov dword [ebp - 0x5c8], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5c8]
jmp 0x4095e4
mov ecx, dword [ebp - 0xc8]
or ecx, dword [ebp - 0xc4]
test ecx, ecx
jne 0x408112
push 1
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ba70
movsx edx, al
cmp edx, 0x3a
jne 0x40810d
push 0
push 0x41
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0x4a2a0c
push 0x34
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
cmp eax, 7
jne 0x40810d
mov dword [ebp - 0x5cc], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5cc]
jmp 0x4095e4
jmp 0x408225
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x270
mov dword [ebp - 0x608], ecx
mov edx, dword [ebp - 0x608]
mov eax, dword [ebp - 0x3c]
cmp eax, dword [edx + 4]
ja 0x408225
jb 0x408149
mov ecx, dword [ebp - 0x608]
mov edx, dword [ebp - 0x40]
cmp edx, dword [ecx]
jae 0x408225
mov eax, dword [ebp - 0x5f8]
push 0
push 0x400
mov ecx, dword [eax + 0x274]
push ecx
mov edx, dword [eax + 0x270]
push edx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
push edx
push eax
push 0
push 0x400
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
push edx
push eax
push 0x42
push 0x49b760
call fcn.0043d430
add esp, 0x18
push eax
push 0x4a2a0c
push 0x34
mov edx, dword [ebp - 0x5f8]
push edx
call fcn.00439f20
add esp, 0x10
cmp eax, 7
jne 0x408225
mov dword [ebp - 0x5d0], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5d0]
jmp 0x4095e4
mov dword [ebp - 0x138], 0x8000000
mov eax, dword [0x4a2a70]
and eax, 0x10
test eax, eax
je 0x4083f4
mov ecx, dword [ebp - 0x138]
or ecx, 0x20000000
mov dword [ebp - 0x138], ecx
push 1
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ba70
movsx edx, al
cmp edx, 0x3a
jne 0x408296
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ba70
movsx eax, al
push eax
push 0x4926a4
lea ecx, [ebp - 0x80]
push ecx
call fcn.0043bde0
add esp, 0xc
jmp 0x4082ab
mov edx, dword [ebp - 0x5f8]
add edx, 0x288
push edx
lea ecx, [ebp - 0x80]
call fcn.0043ae60
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0xc0]
push ecx
lea edx, [ebp - 0x124]
push edx
lea eax, [ebp - 0x54]
push eax
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
jne 0x4082e0
mov dword [ebp - 0x124], 0x800
mov ecx, dword [ebp - 0x5f8]
mov eax, dword [ecx + 0x278]
xor edx, edx
div dword [ebp - 0x124]
test edx, edx
je 0x4083f4
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
xor edx, edx
div dword [ebp - 0x124]
add eax, 1
imul eax, dword [ebp - 0x124]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
push eax
push 0x43
push 0x49b760
call fcn.0043d430
add esp, 0x14
push eax
push 0x4a2a0c
push 0x34
mov ecx, dword [ebp - 0x5f8]
push ecx
call fcn.00439f20
add esp, 0x10
cmp eax, 7
jne 0x4083c3
mov dword [ebp - 0x5d4], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5d4]
jmp 0x4095e4
mov edx, dword [ebp - 0x5f8]
mov eax, dword [ebp - 0x134]
mov dword [edx + 0x278], eax
push 0
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
push edx
push 0x3f3
mov ecx, dword [ebp - 0x5f8]
call fcn.00439dc0
cmp dword [ebp + 8], 2
jne 0x408423
mov eax, dword [0x4a2a70]
and eax, 0x100
test eax, eax
je 0x40841a
mov ecx, dword [ebp - 0x138]
or ecx, 0x80000000
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x48], 1
jmp 0x40842a
mov dword [ebp - 0x48], 0
push 3
mov edx, dword [ebp - 0x138]
push edx
mov eax, dword [ebp - 0x48]
push eax
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00432030
test eax, eax
jne 0x408522
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xf8], eax
push 0
mov ecx, dword [ebp - 0xf8]
push ecx
mov ecx, 0x4a2a80
call fcn.0043dd60
push eax
mov edx, dword [ebp - 0xf8]
push edx
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0x44
push 0x49b760
call fcn.0043d430
add esp, 0x14
push eax
push 0x4a2a0c
push 0x30
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
mov dword [ebp - 0x5d8], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5d8]
jmp 0x4095e4
cmp dword [ebp + 8], 0
jne 0x408765
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322c0
mov ecx, dword [ebp - 0x5f8]
mov dword [ecx + 0x270], eax
mov dword [ecx + 0x274], edx
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov dword [ebp - 0x60c], edx
mov eax, dword [ebp - 0x60c]
mov ecx, dword [ebp - 0x60c]
mov edx, dword [eax]
or edx, dword [ecx + 4]
test edx, edx
jne 0x4085ef
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x3f2
mov ecx, dword [ebp - 0x5f8]
call fcn.00439df0
lea ecx, [ebp - 0x80]
call fcn.0043acd0
mov eax, dword [ebp - 0x5f8]
add eax, 0x270
push eax
push 0x4926ac
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
call fcn.0046fcfa
add esp, 0xc
mov ecx, dword [ebp - 0x5f8]
push 0
push 0x100000
mov edx, dword [ecx + 0x274]
push edx
mov eax, dword [ecx + 0x270]
push eax
call fcn.0046fc00
mov ecx, dword [ebp - 0x5f8]
mov dword [ecx + 0x270], eax
mov dword [ecx + 0x274], edx
mov edx, dword [ebp - 0x5f8]
push 0
push 0x400
mov eax, dword [edx + 0x274]
push eax
mov ecx, dword [edx + 0x270]
push ecx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
push edx
push eax
push 0x4926b4
lea edx, [ebp - 0x80]
push edx
call fcn.0043bde0
add esp, 0x10
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x3f2
mov ecx, dword [ebp - 0x5f8]
call fcn.00439da0
mov eax, dword [ebp - 0x5f8]
add eax, 0x270
mov dword [ebp - 0x610], eax
mov ecx, dword [ebp - 0x610]
cmp dword [ecx + 4], 0
ja 0x408760
jb 0x408680
mov edx, dword [ebp - 0x610]
cmp dword [edx], 0x100000
jae 0x408760
push 1
push 0
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [eax + 0x274]
push ecx
mov edx, dword [eax + 0x270]
push edx
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00430c20
lea ecx, [ebp - 0x80]
call fcn.0043acd0
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x45
push 0x49b760
call fcn.0043d430
add esp, 0xc
push eax
push 0x4a2a0c
push 0x34
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
cmp eax, 7
jne 0x408760
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5dc], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5dc]
jmp 0x4095e4
jmp 0x408ac0
cmp dword [ebp + 8], 1
jne 0x4088a6
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322c0
mov ecx, dword [ebp - 0x5f8]
mov dword [ecx + 0x270], eax
mov dword [ecx + 0x274], edx
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov dword [ebp - 0x614], edx
mov eax, dword [ebp - 0x614]
mov ecx, dword [ebp - 0x614]
mov edx, dword [eax]
or edx, dword [ecx + 4]
test edx, edx
jne 0x408832
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x3f2
mov ecx, dword [ebp - 0x5f8]
call fcn.00439df0
lea ecx, [ebp - 0x80]
call fcn.0043acd0
mov eax, dword [ebp - 0x5f8]
add eax, 0x270
push eax
push 0x4926bc
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
call fcn.0046fcfa
add esp, 0xc
mov ecx, dword [ebp - 0x5f8]
push 0
push 0x100000
mov edx, dword [ecx + 0x274]
push edx
mov eax, dword [ecx + 0x270]
push eax
call fcn.0046fc00
mov ecx, dword [ebp - 0x5f8]
mov dword [ecx + 0x270], eax
mov dword [ecx + 0x274], edx
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov eax, dword [ebp - 0x5f8]
add eax, 0x280
mov dword [ebp - 0x618], edx
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x618]
mov edx, dword [ebp - 0x61c]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jb 0x4088a1
ja 0x40887d
mov ecx, dword [ebp - 0x618]
mov edx, dword [ebp - 0x61c]
mov eax, dword [ecx]
cmp eax, dword [edx]
jbe 0x4088a1
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ebp - 0x5f8]
mov eax, dword [ecx + 0x280]
mov dword [edx + 0x270], eax
mov ecx, dword [ecx + 0x284]
mov dword [edx + 0x274], ecx
jmp 0x408ac0
cmp dword [ebp + 8], 2
jne 0x408ac0
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x274]
push eax
mov ecx, dword [edx + 0x270]
push ecx
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00432340
test eax, eax
jne 0x4089a3
mov edx, dword [ebp - 0x5f8]
push 0
push 0x400
mov eax, dword [edx + 0x274]
push eax
mov ecx, dword [edx + 0x270]
push ecx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
push edx
push eax
push 0x46
push 0x49b760
call fcn.0043d430
add esp, 0x10
push eax
push 0x4a2a0c
push 0
mov edx, dword [ebp - 0x5f8]
push edx
call fcn.00439f20
add esp, 0x10
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5e0], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5e0]
jmp 0x4095e4
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004323d0
test eax, eax
jne 0x408a0e
mov eax, dword [ebp - 0x5f8]
push 0
push 0x400
mov ecx, dword [eax + 0x274]
push ecx
mov edx, dword [eax + 0x270]
push edx
call fcn.0046fc40
push 0
push 0x400
push edx
push eax
call fcn.0046fc40
push edx
push eax
push 0x47
push 0x49b760
call fcn.0043d430
add esp, 0x10
push eax
push 0x4a2a0c
push 0
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
push 0
push 0
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00432340
test eax, eax
jne 0x408ac0
push 0
push 0x48
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0x4a2a0c
push 0
mov ecx, dword [ebp - 0x5f8]
push ecx
call fcn.00439f20
add esp, 0x10
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5e4], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5e4]
jmp 0x4095e4
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [eax + 0x278]
xor eax, eax
mov dword [ebp - 0x620], edx
mov dword [ebp - 0x628], ecx
mov dword [ebp - 0x624], eax
mov ecx, dword [ebp - 0x620]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x624]
ja 0x408bf7
jb 0x408b17
mov eax, dword [ebp - 0x620]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x628]
jae 0x408bf7
mov edx, dword [ebp - 0x5f8]
add edx, 0x270
mov eax, dword [ebp - 0x5f8]
add eax, 0x280
mov dword [ebp - 0x62c], edx
mov dword [ebp - 0x630], eax
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ebp - 0x630]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x408b64
mov ecx, dword [ebp - 0x62c]
mov edx, dword [ebp - 0x630]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
je 0x408bf7
push 0
push 0x49
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0x4a2a0c
push 0x30
mov ecx, dword [ebp - 0x5f8]
push ecx
call fcn.00439f20
add esp, 0x10
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5e8], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5e8]
jmp 0x4095e4
cmp dword [ebp + 8], 0
jne 0x408ddb
mov edx, dword [0x4a2a70]
and edx, 0x20
test edx, edx
je 0x408ddb
push 0
push 0x3e
mov ecx, 0x49b760
call fcn.0043d410
push eax
lea ecx, [ebp - 0x38]
call fcn.0043ae00
push str._Read_Data.bin
lea ecx, [ebp - 0x80]
call fcn.0043ae00
push 0
push 0
push 0x104
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push SysReAllocString
push 0
push 0x4a
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00431480
test eax, eax
jne 0x408cf2
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5ec], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5ec]
jmp 0x4095e4
lea ecx, [ebp - 0x80]
call fcn.0043acd0
push 3
push 0x8000000
push 1
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
lea ecx, [ebp - 0x120]
call fcn.00432030
test eax, eax
jne 0x408ddb
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, 0x4a2a80
call fcn.0043dd60
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x4b
push 0x49b760
call fcn.0043d430
add esp, 0x14
push eax
push 0x4a2a0c
push 0x30
mov edx, dword [ebp - 0x5f8]
push edx
call fcn.00439f20
add esp, 0x10
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
mov dword [ebp - 0x5f0], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5f0]
jmp 0x4095e4
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [eax + 0x278]
add ecx, 0x802
push ecx
call fcn.0046fea8
add esp, 4
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x130]
and edx, 0xfffff800
add edx, 0x800
mov dword [ebp - 0x12c], edx
cmp dword [ebp + 8], 0
jne 0x408e63
mov dword [ebp - 0x128], 0
jmp 0x408e35
mov eax, dword [ebp - 0x128]
add eax, 1
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
shr edx, 2
cmp dword [ebp - 0x128], edx
jae 0x408e61
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x12c]
mov dword [ecx + eax*4], 0x2a2a2a2a
jmp 0x408e26
jmp 0x408ea8
cmp dword [ebp + 8], 2
jne 0x408ea8
lea ecx, [ebp - 0x5bc]
call fcn.0043de50
mov byte [ebp - 4], 5
push 0
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
push eax
mov ecx, dword [ebp - 0x12c]
push ecx
lea ecx, [ebp - 0x5bc]
call fcn.0043dea0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5bc]
call fcn.0043de70
mov dword [ebp - 0xbc], 0
push 0
call fcn.0046ffe2
add esp, 4
push eax
call fcn.0046fe17
add esp, 4
lea ecx, [ebp - 0xf4]
call fcn.0043d610
mov edx, dword [0x4a2a70]
and edx, 0x8000000
test edx, edx
je 0x408f75
call fcn.0046fe24
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
xor ecx, ecx
push ecx
push edx
mov edx, dword [eax + 0x274]
push edx
mov eax, dword [eax + 0x270]
push eax
call fcn.0046fc40
sub eax, 1
sbb edx, 0
push edx
push eax
push edi
push esi
call fcn.0046fc00
push 0
push 0x7fff
push edx
push eax
call fcn.0046fc40
mov ecx, dword [ebp - 0x5f8]
mov ecx, dword [ecx + 0x278]
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.0046fc00
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x50]
push eax
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00432340
test eax, eax
jne 0x408f75
jmp 0x40925a
cmp dword [ebp + 8], 2
jne 0x409074
mov ecx, dword [ebp - 0x12c]
push ecx
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004321d0
test eax, eax
jne 0x40906f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xf8], eax
push 0x49ada0
lea ecx, [ebp - 0x80]
call fcn.0043ae00
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0xf8]
push ecx
mov ecx, 0x4a2a80
call fcn.0043dd60
lea ecx, [ebp - 0x80]
call fcn.0043acd0
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x274]
push eax
mov ecx, dword [edx + 0x270]
push ecx
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x26c]
push eax
mov ecx, dword [edx + 0x268]
push ecx
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
push eax
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0xf8]
push ecx
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0x4c
push 0x49b760
call fcn.0043d430
add esp, 0x28
push eax
push 0x4a2a0c
push 0x30
mov edx, dword [ebp - 0x5f8]
push edx
call fcn.00439f20
add esp, 0x10
jmp 0x40925a
jmp 0x409164
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
push edx
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004320f0
test eax, eax
jne 0x409164
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xf8], eax
push 0x49ada4
lea ecx, [ebp - 0x80]
call fcn.0043ae00
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
mov eax, dword [ebp - 0xf8]
push eax
mov ecx, 0x4a2a80
call fcn.0043dd60
lea ecx, [ebp - 0x80]
call fcn.0043acd0
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x274]
push edx
mov eax, dword [ecx + 0x270]
push eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x26c]
push edx
mov eax, dword [ecx + 0x268]
push eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
push edx
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
mov eax, dword [ebp - 0xf8]
push eax
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
push 0x4d
push 0x49b760
call fcn.0043d430
add esp, 0x28
push eax
push 0x4a2a0c
push 0x30
mov ecx, dword [ebp - 0x5f8]
push ecx
call fcn.00439f20
add esp, 0x10
jmp 0x40925a
cmp dword [ebp + 8], 0
jne 0x409196
mov edx, dword [0x4a2a70]
and edx, 0x20
test edx, edx
je 0x409196
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
push edx
lea ecx, [ebp - 0x120]
call fcn.004321d0
mov eax, dword [ebp - 0x5f8]
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ecx + 0x278]
xor ecx, ecx
mov esi, dword [eax + 0x268]
add esi, edx
mov edx, dword [eax + 0x26c]
adc edx, ecx
mov eax, dword [ebp - 0x5f8]
mov dword [eax + 0x268], esi
mov dword [eax + 0x26c], edx
mov ecx, dword [ebp - 0x5f8]
mov edx, dword [ebp - 0x5f8]
mov eax, dword [edx + 0x278]
xor edx, edx
mov esi, dword [ecx + 0x268]
add esi, eax
mov eax, dword [ecx + 0x26c]
adc eax, edx
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x270
mov dword [ebp - 0x638], esi
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x63c], ecx
mov edx, dword [ebp - 0x63c]
mov eax, dword [ebp - 0x634]
cmp eax, dword [edx + 4]
jb 0x40923d
ja 0x409231
mov ecx, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x638]
cmp edx, dword [ecx]
jbe 0x40923d
mov dword [ebp - 0xbc], 1
jmp 0x40925a
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1a30
call fcn.0042f3c0
cmp eax, 1
jne 0x409255
jmp 0x40925a
jmp 0x408ed0
cmp dword [ebp - 0xbc], 1
jne 0x4092ad
cmp dword [ebp + 8], 2
jne 0x4092ad
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322b0
test eax, eax
jne 0x4092ad
push 0
push 0x4e
mov ecx, 0x49b760
call fcn.0043d410
push eax
push 0x4a2a0c
push 0x30
mov eax, dword [ebp - 0x5f8]
push eax
call fcn.00439f20
add esp, 0x10
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.004322e0
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, 0x4a2a80
call fcn.0043dd60
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.C_FileAccess::WorkerTestFunction:_CloseHandle___done._LastError:__u____s
push 0x4a2a80
call fcn.0043dc70
add esp, 0x10
cmp dword [ebp - 0xbc], 1
jne 0x4094a5
cmp dword [ebp + 8], 0
je 0x409308
cmp dword [ebp + 8], 2
jne 0x4094a5
lea ecx, [ebp - 0xf4]
call fcn.0043d620
lea ecx, [ebp - 0xf4]
call fcn.0043d680
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], 0
ja 0x409340
cmp dword [ebp - 0xd4], 0xa
jbe 0x409473
mov ecx, dword [ebp - 0x5f8]
fild qword [ecx + 0x270]
fst dword [ebp - 0x84]
fdiv dword [0x4836c8]
fst dword [ebp - 0x84]
fmul dword [0x4836c4]
fst dword [ebp - 0x84]
fmul dword [0x4836c4]
fstp dword [ebp - 0x84]
fild qword [ebp - 0xd4]
fdivr dword [ebp - 0x84]
fstp dword [ebp - 0x84]
cmp dword [ebp - 0xcc], 1
jne 0x4093c2
fld dword [ebp - 0x84]
fdiv dword [0x4836f8]
sub esp, 8
fstp qword [esp]
fld dword [ebp - 0x84]
call fcn.00470110
push eax
push str.____.1fx_dvd
lea edx, [ebp - 0x80]
push edx
call fcn.0043bde0
add esp, 0x14
jmp 0x409409
cmp dword [ebp - 0x140], 1
jne 0x4093fc
fld dword [ebp - 0x84]
fdiv dword [0x4836f4]
sub esp, 8
fstp qword [esp]
fld dword [ebp - 0x84]
call fcn.00470110
push eax
push str.____.1fx_cd_rom
lea eax, [ebp - 0x80]
push eax
call fcn.0043bde0
add esp, 0x14
jmp 0x409409
push 0x49ada8
lea ecx, [ebp - 0x80]
call fcn.0043ae00
push 1
push 0
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
fld dword [ebp - 0x84]
call fcn.00470110
push 0
push 0x400
push edx
push eax
call fcn.0046fc00
push edx
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x1118
call fcn.00430c20
lea ecx, [ebp - 0x38]
call fcn.0043acd0
push 0x4928bc
lea ecx, [ebp - 0x38]
call fcn.0043ae90
lea ecx, [ebp - 0x80]
push ecx
lea ecx, [ebp - 0x38]
call fcn.0043aed0
lea edx, [ebp - 0x38]
push edx
lea ecx, [ebp - 0x80]
call fcn.0043ae60
jmp 0x40948a
push 0
push 0x39
mov ecx, 0x49b760
call fcn.0043d410
push eax
lea ecx, [ebp - 0x80]
call fcn.0043ae00
push 0
lea ecx, [ebp - 0x80]
call fcn.0043baa0
push eax
push 0x3ff
mov ecx, dword [ebp - 0x5f8]
call fcn.00439da0
cmp dword [ebp + 8], 0
jne 0x4094c2
mov eax, dword [0x4a2a70]
and eax, 0x20
test eax, eax
je 0x4094c2
lea ecx, [ebp - 0x120]
call fcn.004322e0
cmp dword [ebp + 8], 2
jne 0x40957b
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
push ecx
lea ecx, [ebp - 0x38]
call fcn.0043ae60
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x2b8
call fcn.00441fa0
lea edx, [ebp - 0x38]
push edx
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043ae60
push 0
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x288
call fcn.0043c1f0
push eax
lea ecx, [ebp - 0x38]
call fcn.0043ae00
push 3
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
lea ecx, [ebp - 0x38]
call fcn.0043c110
lea ecx, [ebp - 0x38]
call fcn.0043acd0
push 0
lea ecx, [ebp - 0x38]
call fcn.0043baa0
push eax
mov ecx, dword [ebp - 0x5f8]
add ecx, 0x2b8
call fcn.00442440
push 0
mov ecx, dword [ebp - 0x5f8]
call fcn.004053e7
mov eax, dword [ebp - 0x130]
push eax
call fcn.0046fd2e
add esp, 4
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x5f4], ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.0043a990
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf4]
call fcn.0043d250
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb8]
call fcn.0043a990
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x120]
call fcn.00430aa0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.0043a990
mov eax, dword [ebp - 0x5f4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4