Function at 0x818bbc
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x3b
push 0
push 0
dec ecx
jne 0x818bc5
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040573c
xor eax, eax
push ebp
push 0x81a075
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x1439bac]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
sete byte [ebp - 0xc1]
mov eax, 0x891d94
call fcn.0040528c
mov eax, 0x891d90
call fcn.0040528c
push 0x81a08c
lea edx, [ebp - 0xd0]
mov eax, 0x4f
call fcn.0062e7cc
push dword [ebp - 0xd0]
push 0x81a09c
push 0x81a0a8
lea eax, [ebp - 0xbc]
mov edx, 4
call fcn.0040560c
mov dl, 1
mov eax, dword [0x41c3d0]
call fcn.0040442c
mov dword [ebp - 0x70], eax
mov dl, 1
mov eax, dword [0x41c3d0]
call fcn.0040442c
mov dword [ebp - 0x6c], eax
mov dl, 1
mov eax, dword [0x41c3d0]
call fcn.0040442c
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0xb8]
call fcn.0040528c
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x1c], 0x65
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0xd4]
mov edx, dword [ebp - 0x14]
add edx, 0x40
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032c4
mov edx, 0x81a0ac
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403294
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x60]
call fcn.004054f0
lea eax, [ebp - 0xdc]
mov ecx, 0x81a0b8
mov edx, dword [ebp - 0x60]
call fcn.00405598
mov eax, dword [ebp - 0xdc]
call fcn.0040574c
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 4
jne 0x818d34
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x81916f
cmp dword [ebp - 0x3c], 2
jne 0x818d54
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x81916f
mov eax, dword [0x89267c]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x818e01
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x5c]
mov eax, dword [0x89267c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
call fcn.00405890
test eax, eax
jle 0x818df2
lea eax, [ebp - 0xe0]
push eax
mov edx, dword [ebp - 0x5c]
mov eax, 0x81a0c4
call fcn.00405890
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x5c]
call fcn.004057ac
mov eax, dword [ebp - 0xe0]
or edx, 0xffffffff
call fcn.0040a934
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x818df2
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 0x28]
call fcn.0040a78c
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x818d77
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jne 0x818ed3
lea ecx, [ebp - 0xe8]
xor edx, edx
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xe8]
or edx, 0xffffffff
call fcn.0040a934
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x818ec8
lea edx, [ebp - 0xf0]
mov eax, 0x56
call fcn.0062e7cc
push dword [ebp - 0xf0]
push 0x81a0d0
lea edx, [ebp - 0xf4]
mov eax, dword [ebp - 0x28]
call fcn.0040a78c
push dword [ebp - 0xf4]
push 0x81a0dc
lea edx, [ebp - 0xf8]
mov eax, 0x50
call fcn.0062e7cc
push dword [ebp - 0xf8]
push 0x81a0c4
push dword [ebp - 0x60]
lea eax, [ebp - 0xec]
mov edx, 7
call fcn.0040560c
mov edx, dword [ebp - 0xec]
imul ecx, dword [ebp - 0x28], 0x3e8
add ecx, 0x2710
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax]
add ecx, eax
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x818ed3
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jle 0x819083
lea ecx, [ebp - 0xfc]
xor edx, edx
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xfc]
or edx, 0xffffffff
call fcn.0040a934
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x64]
call fcn.0040528c
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x818fca
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x30], 0
push dword [ebp - 0x64]
lea ecx, [ebp - 0x100]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x100]
push 0x81a0e8
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.0040560c
lea ecx, [ebp - 0x104]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc8]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x104]
or edx, 0xffffffff
call fcn.0040a934
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jle 0x818f9a
mov eax, dword [ebp - 0x28]
call fcn.005ff7c0
mov dword [ebp - 0x18], eax
jmp 0x818fa1
mov dword [ebp - 0x18], 0xffffffff
cmp dword [ebp - 0x18], 0
jl 0x818fbb
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c]
jge 0x818fbb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x30]
dec dword [ebp - 0xcc]
jne 0x818f33
mov eax, dword [ebp - 0x64]
call fcn.0040554c
dec eax
jle 0x818fec
mov eax, dword [ebp - 0x64]
call fcn.0040554c
mov edx, eax
lea eax, [ebp - 0x64]
mov ecx, 1
call fcn.004057ec
cmp dword [ebp - 0x20], 0xffffffff
jle 0x819078
mov eax, dword [ebp - 0x64]
call fcn.0040554c
test eax, eax
jle 0x819078
lea edx, [ebp - 0x10c]
mov eax, 0x56
call fcn.0062e7cc
push dword [ebp - 0x10c]
push 0x81a0d0
push dword [ebp - 0x64]
push 0x81a0dc
lea edx, [ebp - 0x110]
mov eax, 0x50
call fcn.0062e7cc
push dword [ebp - 0x110]
push 0x81a0c4
push dword [ebp - 0x60]
lea eax, [ebp - 0x108]
mov edx, 7
call fcn.0040560c
mov edx, dword [ebp - 0x108]
imul ecx, dword [ebp - 0x20], 0x3e8
add ecx, 0x2710
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax]
add ecx, eax
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x819083
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [ebp - 0xc8]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x81916f
lea eax, [ebp - 0x114]
mov edx, dword [ebp - 0x14]
add edx, 0x40
call fcn.00405474
lea eax, [ebp - 0x114]
mov edx, 0x81a0f4
call fcn.00405554
mov eax, dword [ebp - 0x114]
call fcn.0040574c
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 0xff
ja 0x8190dc
bt dword [0x1439bb0], eax
jae 0x81916f
mov byte [ebp - 0xbe], 1
cmp dword [ebp - 0x30], 2
jne 0x81910b
cmp dword [ebp - 0x14], 2
jg 0x81910b
mov eax, dword [ebp - 0x14]
add eax, 0x40
call fcn.005e5b1c
test al, al
je 0x81910b
mov byte [ebp - 0xbe], 0
cmp byte [ebp - 0xbe], 0
je 0x81916f
lea edx, [ebp - 0x11c]
mov eax, 0x50
call fcn.0062e7cc
push dword [ebp - 0x11c]
push 0x81a0c4
lea eax, [ebp - 0x120]
mov edx, dword [ebp - 0x14]
add edx, 0x40
call fcn.00405474
push dword [ebp - 0x120]
push 0x81a100
lea eax, [ebp - 0x118]
mov edx, 4
call fcn.0040560c
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x14]
add ecx, 0x40
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1b
jne 0x818c98
mov eax, dword [ebp - 0xc8]
call fcn.0040445c
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x819ee4
inc eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x124]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x124]
call fcn.0040554c
cmp eax, 2
jl 0x819ed5
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ecx, 0x3e8
cdq
idiv ecx
mov byte [ebp - 0xbd], dl
lea edx, [ebp - 0x128]
mov eax, dword [0x892934]
mov eax, dword [eax]
call fcn.0040a048
mov eax, dword [ebp - 0x128]
push eax
lea eax, [ebp - 0x12c]
mov dl, byte [ebp - 0xbd]
call fcn.00405474
mov eax, dword [ebp - 0x12c]
pop edx
call fcn.00405890
test eax, eax
jg 0x819ed5
lea ecx, [ebp - 0x74]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov al, byte [ebp - 0xbd]
sub al, 0x40
mov byte [ebp - 0x75], al
mov al, byte [ebp - 0x75]
call fcn.0040b2fc
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x84], 0
jne 0x819263
cmp dword [ebp - 0x88], 0
jae 0x8192a1
jmp 0x819265
jge 0x8192a1
mov eax, dword [ebp - 0x74]
call fcn.0040554c
mov edx, dword [ebp - 0x74]
mov dl, byte [edx + eax - 2]
lea eax, [ebp - 0x130]
call fcn.00405474
mov edx, dword [ebp - 0x130]
mov eax, 0x891d90
call fcn.00405554
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.00639824
jmp 0x819ed5
mov al, byte [ebp - 0x75]
call fcn.0040b330
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
fild qword [ebp - 0x80]
fstp xword [ebp - 0x98]
wait
fild qword [ebp - 0x88]
fstp xword [ebp - 0xa8]
wait
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp - 0x84]
push dword [ebp - 0x88]
mov al, byte [ebp - 0xbd]
call fcn.00817e1c
fld xword [ebp - 0x98]
fcomp dword [0x81a104]
fnstsw ax
sahf
je 0x819ed5
lea ecx, [ebp - 0x60]
mov edx, 0x81a110
mov eax, dword [ebp - 0x6c]
call fcn.004203dc
lea eax, [ebp - 0x134]
push eax
mov eax, dword [ebp - 0x60]
call fcn.0040554c
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057ac
mov eax, dword [ebp - 0x134]
mov edx, 0x81a120
call fcn.00405698
jne 0x819371
mov byte [ebp - 0xc0], 1
lea eax, [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x60]
call fcn.0040554c
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057ac
mov eax, dword [ebp - 0x138]
lea edx, [ebp - 0x34]
call fcn.004038b4
mov dword [ebp - 0x30], eax
jmp 0x819386
mov byte [ebp - 0xc0], 0
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x60]
call fcn.004038b4
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x60]
mov edx, 0x81a12c
mov eax, dword [ebp - 0x6c]
call fcn.004203dc
mov eax, dword [ebp - 0x60]
mov edx, 0x81a13c
call fcn.00405698
jne 0x819486
lea eax, [ebp - 0xd4]
xor edx, edx
mov dl, byte [ebp - 0x75]
add edx, 0x40
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032c4
mov edx, 0x81a0ac
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403294
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x13c]
call fcn.004054f0
mov edx, dword [ebp - 0x13c]
lea ecx, [ebp - 0x60]
mov eax, dword [ebp - 0x6c]
call fcn.004203dc
cmp dword [ebp - 0x60], 0
je 0x819486
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0x60]
call fcn.0040554c
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057ac
mov eax, dword [ebp - 0x140]
mov edx, 0x81a120
call fcn.00405698
jne 0x819471
mov byte [ebp - 0xc0], 1
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp - 0x60]
call fcn.0040554c
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x60]
call fcn.004057ac
mov eax, dword [ebp - 0x144]
lea edx, [ebp - 0x34]
call fcn.004038b4
mov dword [ebp - 0x30], eax
jmp 0x819486
mov byte [ebp - 0xc0], 0
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x60]
call fcn.004038b4
mov dword [ebp - 0x30], eax
cmp byte [ebp - 0xc0], 0
je 0x819502
push 0
push 0x100000
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
call fcn.0040630c
push edx
push eax
mov eax, dword [ebp - 0x30]
cdq
cmp edx, dword [esp + 4]
jne 0x8194bc
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x8194f5
jmp 0x8194c0
pop edx
pop eax
jle 0x8194f5
push 0x81a148
lea edx, [ebp - 0x148]
mov eax, 0x114
call fcn.0062e7cc
push dword [ebp - 0x148]
push 0x81a154
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.0040560c
jmp 0x819575
lea eax, [ebp - 0xb4]
call fcn.0040528c
jmp 0x819575
mov eax, dword [ebp - 0x30]
cdq
push edx
push eax
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.004062e8
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fdiv dword [0x81a158]
fild qword [ebp - 0x88]
fcompp
fnstsw ax
sahf
jae 0x81956a
push 0x81a148
lea edx, [ebp - 0x154]
mov eax, 0x114
call fcn.0062e7cc
push dword [ebp - 0x154]
push 0x81a154
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.0040560c
jmp 0x819575
lea eax, [ebp - 0xb4]
call fcn.0040528c
cmp byte [ebp - 5], 0
je 0x819a75
lea edx, [ebp - 0x15c]
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x500]
call fcn.00473d9c
mov eax, dword [ebp - 0x15c]
lea edx, [ebp - 0x158]
call fcn.0040a048
mov eax, dword [ebp - 0x158]
push eax
lea eax, [ebp - 0x160]
mov dl, byte [ebp - 0xbd]
call fcn.00405474
mov eax, dword [ebp - 0x160]
pop edx
call fcn.00405890
test eax, eax
jg 0x819a75
lea eax, [ebp - 0x164]
mov dl, byte [ebp - 0xbd]
call fcn.00405474
lea eax, [ebp - 0x164]
mov edx, 0x81a0f4
call fcn.00405554
mov eax, dword [ebp - 0x164]
call fcn.0040574c
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 4
jne 0x819646
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x819a75
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x4ec]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x819a75
cmp dword [ebp - 0x3c], 2
jne 0x819683
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x819a75
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x504]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
je 0x819a75
lea eax, [ebp - 0x68]
mov edx, 0x81a164
call fcn.00405324
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x2710
jl 0x819710
mov eax, dword [ebp - 0x3c]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
call fcn.005ff7c0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
call fcn.00828130
cmp eax, dword [ebp - 0x24]
jg 0x8196e1
lea eax, [ebp - 0x68]
mov edx, 0x81a178
call fcn.00405324
jmp 0x819710
mov eax, dword [ebp - 0x10]
call fcn.00828150
cmp eax, dword [ebp - 0x24]
jg 0x8196fd
lea eax, [ebp - 0x68]
mov edx, 0x81a18c
call fcn.00405324
jmp 0x819710
cmp dword [ebp - 0x24], 0
jl 0x819710
lea eax, [ebp - 0x68]
mov edx, 0x81a1a0
call fcn.00405324
lea eax, [ebp - 0x168]
mov dl, byte [ebp - 0xbd]
call fcn.00405474
lea eax, [ebp - 0x168]
mov edx, 0x81a0f4
call fcn.00405554
mov eax, dword [ebp - 0x168]
call fcn.0040574c
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 4
jne 0x819754
lea eax, [ebp - 0x68]
mov edx, 0x81a1b4
call fcn.00405324
lea eax, [ebp - 0xac]
mov edx, dword [ebp - 0x68]
call fcn.00405324
lea eax, [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [0x891d98]
call fcn.00405598
cmp byte [ebp - 0xc0], 0
je 0x8197b3
push 0
push 0x100000
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.0040630c
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fild dword [ebp - 0x30]
fdivrp st(1)
fmul dword [0x81a158]
call fcn.00402d78
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x88]
sbb edx, dword [ebp - 0x84]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
fild qword [ebp - 0x80]
fdivp st(1)
fmul dword [0x81a158]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00437e00
mov dword [ebp - 0x2c], eax
mov eax, 0x64
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov ecx, 6
cdq
idiv ecx
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x30]
jl 0x819863
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x16c]
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x170], eax
fild dword [ebp - 0x170]
fdivp st(1)
fmul dword [0x81a1c0]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00437e00
add eax, 0xd
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xe
jge 0x8198d6
mov dword [ebp - 0x40], 0xe
jmp 0x8198d6
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, eax
cmp edx, dword [ebp - 0x2c]
jg 0x8198c9
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, eax
mov eax, dword [ebp - 0x2c]
sub eax, edx
mov dword [ebp - 0x16c], eax
fild dword [ebp - 0x16c]
mov eax, 0x65
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x170], eax
fild dword [ebp - 0x170]
fdivp st(1)
fmul dword [0x81a1c0]
call fcn.00402d78
add eax, 0xb
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0xd
jle 0x8198d6
mov dword [ebp - 0x40], 0xd
jmp 0x8198d6
cmp dword [ebp - 0x40], 0xa
jle 0x8198d6
mov dword [ebp - 0x40], 0xa
cmp dword [ebp - 0x40], 0
jg 0x8198e3
mov dword [ebp - 0x40], 1
cmp dword [ebp - 0x40], 0x10
jle 0x8198f0
mov dword [ebp - 0x40], 0x10
lea eax, [ebp - 0x174]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [0x891d98]
call fcn.004057ac
mov eax, dword [ebp - 0x174]
mov edx, 0x81a1cc
call fcn.00405698
jne 0x81994d
mov eax, dword [ebp - 0x3c]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
push eax
mov al, byte [0x891d9c]
push eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0xac]
mov al, byte [ebp - 0xbd]
call fcn.00817688
jmp 0x819a75
lea edx, [ebp - 0x64]
mov al, byte [ebp - 0xbd]
call fcn.00639608
cmp dword [ebp - 0x7c], 0
jne 0x819969
cmp dword [ebp - 0x80], 0
ja 0x819993
jmp 0x81996b
jg 0x819993
cmp dword [ebp - 0x84], 0
jne 0x81997f
cmp dword [ebp - 0x88], 0
ja 0x819993
jmp 0x819981
jg 0x819993
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.00639824
jmp 0x819ed5
lea eax, [ebp - 0x178]
push eax
mov cl, 0x2c
mov edx, 2
mov eax, dword [ebp - 0x64]
call fcn.004bccbc
mov eax, dword [ebp - 0x178]
push eax
lea edx, [ebp - 0x17c]
mov eax, dword [ebp - 0x40]
call fcn.0040a78c
mov edx, dword [ebp - 0x17c]
pop eax
call fcn.00405698
jne 0x8199ff
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 0x64]
call fcn.0040a048
mov eax, dword [ebp - 0x180]
push eax
lea edx, [ebp - 0x184]
mov eax, dword [ebp - 0x68]
call fcn.0040a048
mov eax, dword [ebp - 0x184]
pop edx
call fcn.00405890
test eax, eax
jne 0x819a75
lea edx, [ebp - 0x188]
mov al, 1
call fcn.004c3988
mov eax, dword [ebp - 0x188]
lea ecx, [ebp - 0x58]
mov edx, dword [ebp - 0x68]
call fcn.004bdd94
mov eax, dword [ebp - 0x58]
call fcn.0040ad3c
test al, al
jne 0x819a38
xor edx, edx
mov al, byte [ebp - 0xbd]
call fcn.00639824
jmp 0x819a75
push dword [ebp - 0x58]
push 0x81a1d8
lea edx, [ebp - 0x190]
mov eax, dword [ebp - 0x40]
call fcn.0040a78c
push dword [ebp - 0x190]
lea eax, [ebp - 0x18c]
mov edx, 3
call fcn.0040560c
mov edx, dword [ebp - 0x18c]
mov al, byte [ebp - 0xbd]
call fcn.00639824
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x96c]
mov edx, dword [eax]
call dword [edx + 0xcc]
dec eax
je 0x819a95
dec eax
je 0x819ae9
jmp 0x819b40
lea eax, [ebp - 0x194]
push eax
fild qword [ebp - 0x80]
fdiv dword [0x81a1dc]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x81a1e8
call fcn.0040bf48
mov edx, dword [ebp - 0x194]
lea eax, [ebp - 0x44]
mov ecx, 0x81a1f8
call fcn.00405598
jmp 0x819b72
lea eax, [ebp - 0x1a4]
push eax
fild qword [ebp - 0x80]
fdiv dword [0x81a1dc]
fdiv dword [0x81a1fc]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x81a208
call fcn.0040bf48
mov edx, dword [ebp - 0x1a4]
lea eax, [ebp - 0x44]
mov ecx, 0x81a218
call fcn.00405598
jmp 0x819b72
push 0
push 0x100000
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call fcn.0040630c
push edx
push eax
lea eax, [ebp - 0x1a8]
call fcn.0040a878
mov edx, dword [ebp - 0x1a8]
lea eax, [ebp - 0x44]
mov ecx, 0x81a224
call fcn.00405598
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x96c]
mov edx, dword [eax]
call dword [edx + 0xcc]
dec eax
je 0x819b92
dec eax
je 0x819be9
jmp 0x819c43
lea eax, [ebp - 0x1ac]
push eax
fild qword [ebp - 0x88]
fdiv dword [0x81a1dc]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x81a1e8
call fcn.0040bf48
mov edx, dword [ebp - 0x1ac]
lea eax, [ebp - 0x48]
mov ecx, 0x81a1f8
call fcn.00405598
jmp 0x819c7b
lea eax, [ebp - 0x1b0]
push eax
fild qword [ebp - 0x88]
fdiv dword [0x81a1dc]
fdiv dword [0x81a1fc]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x81a208
call fcn.0040bf48
mov edx, dword [ebp - 0x1b0]
lea eax, [ebp - 0x48]
mov ecx, 0x81a218
call fcn.00405598
jmp 0x819c7b
push 0
push 0x100000
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x84]
call fcn.0040630c
push edx
push eax
lea eax, [ebp - 0x1b4]
call fcn.0040a878
mov edx, dword [ebp - 0x1b4]
lea eax, [ebp - 0x48]
mov ecx, 0x81a224
call fcn.00405598
fld xword [ebp - 0xa8]
fcomp dword [0x81a228]
fnstsw ax
sahf
jbe 0x819d13
fld xword [ebp - 0x98]
fcomp dword [0x81a104]
fnstsw ax
sahf
jbe 0x819d13
fld xword [ebp - 0x98]
fld xword [ebp - 0xa8]
fcompp
fnstsw ax
sahf
ja 0x819d13
lea eax, [ebp - 0x1b8]
push eax
fld xword [ebp - 0xa8]
fld xword [ebp - 0x98]
fdivp st(1)
fmul dword [0x81a158]
fstp xword [ebp - 0x1a0]
wait
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x14c], 3
lea edx, [ebp - 0x150]
xor ecx, ecx
mov eax, 0x81a234
call fcn.0040bf48
mov edx, dword [ebp - 0x1b8]
lea eax, [ebp - 0xb0]
mov ecx, 0x81a244
call fcn.00405598
jmp 0x819d1e
lea eax, [ebp - 0xb0]
call fcn.0040528c
push dword [ebp - 0xbc]
push 0x81a09c
push 0x81a0a8
push dword [ebp - 0x74]
push 0x81a250
lea edx, [ebp - 0x1bc]
mov eax, 0x51
call fcn.0062e7cc
push dword [ebp - 0x1bc]
push 0x81a25c
push dword [ebp - 0x44]
push 0x81a0dc
lea edx, [ebp - 0x1c0]
mov eax, 0x52
call fcn.0062e7cc
push dword [ebp - 0x1c0]
push 0x81a25c
push dword [ebp - 0x48]
push 0x81a0c4
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
lea eax, [ebp - 0xbc]
mov edx, 0xf
call fcn.0040560c
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0x2710
jge 0x819db8
mov dword [ebp - 0x34], 0xffffffff
jmp 0x819dcb
mov eax, dword [ebp - 0x34]
sub eax, 0x2710
mov ecx, 0x3e8
cdq
idiv ecx
mov dword [ebp - 0x34], eax
push dword [0x891d94]
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x34]
call fcn.0040a78c
push dword [ebp - 0x1c4]
push 0x81a1d8
lea eax, [ebp - 0x1c8]
mov dl, byte [ebp - 0xbd]
call fcn.00405474
push dword [ebp - 0x1c8]
push 0x81a268
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
lea eax, [ebp - 0x1cc]
call fcn.0040a878
push dword [ebp - 0x1cc]
push 0x81a1d8
push dword [ebp - 0x84]
push dword [ebp - 0x88]
lea eax, [ebp - 0x1d0]
call fcn.0040a878
push dword [ebp - 0x1d0]
push 0x81a09c
mov eax, 0x891d94
mov edx, 9
call fcn.0040560c
cmp byte [ebp - 0xc1], 0
je 0x819ed5
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0x50]
mov al, byte [ebp - 0xbd]
call fcn.0081b210
lea eax, [ebp - 0xd4]
mov dl, byte [ebp - 0xbd]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0xd8]
call fcn.004032c4
mov edx, 0x81a26c
lea eax, [ebp - 0xd8]
mov cl, 2
call fcn.00403294
lea edx, [ebp - 0xd8]
lea eax, [ebp - 0x1d4]
call fcn.004054f0
lea eax, [ebp - 0x1d4]
mov edx, dword [ebp - 0x50]
call fcn.00405554
mov edx, dword [ebp - 0x1d4]
mov eax, dword [0x1439bac]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x8191a6
mov eax, dword [0x891d94]
call fcn.0040554c
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jle 0x819f09
mov eax, 0x891d94
mov ecx, 1
mov edx, dword [ebp - 0x38]
call fcn.004057ec
lea edx, [ebp - 0x1d8]
mov eax, dword [0x893464]
mov eax, dword [eax]
mov eax, dword [eax + 0x500]
call fcn.00473d9c
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [0x892934]
mov edx, dword [edx]
lea eax, [ebp - 0x5c]
call fcn.00405598
mov eax, dword [ebp - 0x5c]
call fcn.0040554c
test eax, eax
jle 0x819fa0
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x38], 1
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x38]
mov al, byte [eax + ecx - 1]
call fcn.00639608
lea edx, [ebp - 0x1dc]
mov eax, dword [ebp - 0x64]
call fcn.0040a048
mov edx, dword [ebp - 0x1dc]
mov eax, 0x81a278
call fcn.00405890
test eax, eax
jle 0x819f95
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x38]
mov al, byte [eax + edx - 1]
xor edx, edx
call fcn.00639824
inc dword [ebp - 0x38]
dec dword [ebp - 0xcc]
jne 0x819f50
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xbc]
call fcn.004052e0
mov eax, dword [ebp - 0x70]
call fcn.0040445c
mov eax, dword [ebp - 0x6c]
call fcn.0040445c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81a07f
lea eax, [ebp - 0x1dc]
call fcn.0040528c
lea eax, [ebp - 0x1d8]
call fcn.0040528c
lea eax, [ebp - 0x1d4]
mov edx, 0xd
call fcn.004052b0
lea eax, [ebp - 0x194]
mov edx, 9
call fcn.004052b0
lea eax, [ebp - 0x168]
mov edx, 3
call fcn.004052b0
lea eax, [ebp - 0x15c]
call fcn.0040528c
lea eax, [ebp - 0x158]
mov edx, 2
call fcn.004052b0
lea eax, [ebp - 0x148]
mov edx, 0x1c
call fcn.004052b0
lea eax, [ebp - 0xd0]
call fcn.0040528c
lea eax, [ebp - 0xbc]
mov edx, 5
call fcn.004052b0
lea eax, [ebp - 0x74]
call fcn.0040528c
lea eax, [ebp - 0x68]
mov edx, 0xa
call fcn.004052b0
lea eax, [ebp - 4]
call fcn.0040528c
ret