Function at 0x477e18
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x477e21
add esp, 0xffffffc8
mov eax, dword [ebp - 4]
mov eax, 0x595355
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
call fcn.004d08c0
xor edx, edx
mov dword [ebp - 0x28], edx
mov word [ebp - 0x14], 8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov word [ebp - 0x14], 8
test byte [0x516435], 2
je 0x477e7d
push 0x5d8b61
push 0x5d8b5b
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x83e
push 0
push 0x593ca4
call fcn.004cde6c
add esp, 0xc
push 3
push 0x593ca4
call fcn.00452b70
add esp, 8
push 0x834
push 0
push 0x5944e2
call fcn.004cde6c
add esp, 0xc
push 4
push 0x5944e2
call fcn.00452b70
mov ax, word [0x5167ec]
movzx edx, ax
mov dword [0x59418a], edx
add esp, 8
mov word [0x594858], ax
lea eax, [ebp - 0x103c]
mov cx, word [0x5167ee]
push eax
mov word [0x594856], cx
call fcn.004778dc
test byte [0x516435], 2
pop ecx
je 0x477f15
lea edx, [ebp - 0x103c]
push edx
push 0x5d8b64
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x593ca8
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x28
push 0x594540
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
call fcn.00477900
pop ecx
test al, al
jne 0x477f63
or dword [ebp - 0x2c], 0x100
or dword [ebp - 0x2c], 0x100
test byte [0x516435], 2
je 0x477f8c
lea ecx, [ebp - 0x103c]
push ecx
push 0x5d8b71
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x593cc6
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x32
push 0x5945c2
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
lea ecx, [ebp - 0x103c]
push ecx
call fcn.004778f0
test byte [0x516435], 2
pop ecx
je 0x477ff1
lea eax, [ebp - 0x103c]
push eax
push 0x5d8b79
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x593d02
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x28
push 0x594568
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
test ebx, ebx
je 0x478071
test byte [0x516435], 2
je 0x478047
push ebx
push 0x5d8b82
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x593ce4
push ebx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x32
push 0x594626
push ebx
call fcn.0044f890
add esp, 0x10
test esi, esi
je 0x4780bb
test byte [0x516435], 2
je 0x478091
push esi
push 0x5d8b8b
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x594310
push esi
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x32
push 0x594658
push esi
call fcn.0044f890
add esp, 0x10
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x478166
test byte [0x516435], 2
je 0x4780e5
mov edx, dword [ebp + 0x10]
push edx
push 0x5d8b95
push 0x516438
call fcn.00451598
add esp, 0xc
mov ecx, dword [ebp + 0x10]
push edi
mov edi, ecx
xor eax, eax
or ecx, 0xffffffff
lea esi, [ebp - 0x103c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [ebp - 0x103c]
pop edi
test al, al
je 0x478130
lea edx, [ebp - 0x103c]
push edx
call fcn.00414718
pop ecx
dec eax
je 0x478130
or dword [ebp - 0x2c], 0x200
push 0x200
push 0x1e
push 0x5944a6
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x32
push 0x59468a
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
test edi, edi
je 0x47824f
mov dl, byte [edi]
test dl, dl
je 0x47824f
test byte [0x516435], 2
je 0x478194
push edi
push 0x5d8b9e
push 0x516438
call fcn.00451598
add esp, 0xc
xor eax, eax
push edi
or ecx, 0xffffffff
lea esi, [ebp - 0x103c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, byte [ebp - 0x103c]
cmp eax, 0x3f
pop edi
jne 0x4781d6
push 0
lea edx, [ebp - 0x103c]
push edx
call fcn.00414d8c
add esp, 8
mov cl, byte [ebp - 0x103c]
test cl, cl
je 0x4781f7
lea eax, [ebp - 0x103c]
push eax
call fcn.00414718
pop ecx
dec eax
je 0x4781f7
or dword [ebp - 0x2c], 0x400
test byte [0x516435], 2
je 0x478219
lea edx, [ebp - 0x103c]
push edx
push 0x5d8ba7
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x1e
push 0x5944c4
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x32
push 0x5946bc
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x59416c
push 0x5d8bb2
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x5944e6
push 0x5d8bc7
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f858
test byte [0x516435], 2
pop ecx
je 0x4782b0
lea ecx, [ebp - 0x103c]
push ecx
push 0x5d8bdc
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x3c
push 0x593d20
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x3c
push 0x594504
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f844
pop ecx
push 0x200
push 8
push 0x593d6c
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0x1693
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f874
pop ecx
push 0x200
push 0x10
push 0x593d5c
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0x1691
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
call fcn.0041087c
push eax
push 0x5d8bea
lea ecx, [ebp - 0x103c]
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593d74
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0x1695
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
mov ecx, dword [0x595351]
mov dword [ebp - 0x30], ecx
xor eax, eax
mov dword [ebp - 0x34], eax
xor edi, edi
xor ebx, ebx
xor esi, esi
xor eax, eax
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x30]
push edx
call sub.KERNEL32.dll_GetDriveTypeA
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
cmp ecx, 6
ja case.0x4783f2.0
jmp dword [ecx*4 + 0x4783f9]
xor ebx, ebx
xor esi, esi
xor eax, eax
lea edx, [ebp - 0x203c]
mov dword [ebp - 0x3c], eax
push 0
push edx
lea ecx, [ebp - 0x30]
push ecx
call fcn.004114cc
add esp, 0xc
test al, al
jne 0x47855e
lea eax, [ebp - 0x203c]
push eax
mov edx, dword [ebp - 0x34]
push edx
push 7
call fcn.00410e14
add esp, 0xc
jmp 0x47855e
xor esi, esi
xor eax, eax
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x203c]
push 0
push edx
lea ecx, [ebp - 0x30]
mov bl, 0x32
push ecx
call fcn.004114cc
add esp, 0xc
test al, al
jne 0x47855e
lea eax, [ebp - 0x203c]
push eax
mov edx, dword [ebp - 0x34]
push edx
push 7
call fcn.00410e14
add esp, 0xc
jmp 0x47855e
xor esi, esi
xor eax, eax
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x203c]
push 0
push edx
lea ecx, [ebp - 0x30]
mov bl, 0x33
push ecx
call fcn.004114cc
add esp, 0xc
test al, al
jne 0x47855e
lea eax, [ebp - 0x203c]
push eax
mov edx, dword [ebp - 0x34]
push edx
push 7
call fcn.00410e14
add esp, 0xc
jmp 0x47855e
mov bl, 0x31
push 1
lea eax, [ebp - 0x30]
push eax
call fcn.004109e0
add esp, 8
mov esi, eax
push 0
lea eax, [ebp - 0x30]
push eax
call fcn.004109e0
add esp, 8
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x203c]
lea ecx, [ebp - 0x30]
push 0
push edx
push ecx
call fcn.004114cc
add esp, 0xc
test al, al
jne 0x47855e
lea eax, [ebp - 0x203c]
push eax
mov edx, dword [ebp - 0x34]
push edx
push 7
call fcn.00410e14
add esp, 0xc
jmp 0x47855e
mov bl, 0x34
push 1
lea eax, [ebp - 0x30]
push eax
call fcn.004109e0
add esp, 8
mov esi, eax
push 0
lea eax, [ebp - 0x30]
push eax
call fcn.004109e0
add esp, 8
mov dword [ebp - 0x3c], eax
lea edx, [ebp - 0x203c]
push edx
lea ecx, [ebp - 0x30]
push ecx
call fcn.0043ea9c
add esp, 8
test bl, bl
je 0x478bcf
mov al, byte [ebp - 0x30]
xor edx, edx
mov byte [ebp - 0x103c], al
mov dl, bl
mov dword [ebp - 0x103b], edx
mov dword [ebp - 0x1037], esi
mov ecx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0x1033], ecx
push esi
push edi
lea edi, [ebp - 0x203c]
or ecx, 0xffffffff
lea esi, [ebp - 0x102f]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x203c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
call fcn.004cdfec
pop ecx
add eax, 0xd
mov ecx, edi
push eax
shl ecx, 4
lea edx, [ebp - 0x103c]
push edx
add ecx, 0x1100
push ecx
push 0x4b0
push 0x594866
call fcn.00476420
add esp, 0x14
test edi, edi
jne 0x47866d
push esi
push 0x5d8bed
lea eax, [ebp - 0x103c]
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593d7c
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
push ecx
push 0x5d8bf0
lea eax, [ebp - 0x103c]
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593d84
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593d8c
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
cmp edi, 1
jne 0x478740
push 0x200
push 2
push 0x593daa
lea eax, [ebp - 0x30]
push eax
call fcn.0044f890
add esp, 0x10
xor edx, edx
mov dl, bl
lea ecx, [ebp - 0x103c]
push edx
push 0x5d8bf3
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593dca
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push esi
push 0x5d8bf8
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593dcc
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
mov eax, dword [ebp - 0x3c]
push eax
push 0x5d8bfb
lea edx, [ebp - 0x103c]
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593dd4
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593dac
lea eax, [ebp - 0x203c]
push eax
call fcn.0044f890
add esp, 0x10
cmp edi, 2
jne 0x478813
push 0x200
push 2
push 0x593ddc
lea edx, [ebp - 0x30]
push edx
call fcn.0044f890
add esp, 0x10
xor ecx, ecx
mov cl, bl
lea eax, [ebp - 0x103c]
push ecx
push 0x5d8bfe
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593dfc
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
lea ecx, [ebp - 0x103c]
push esi
push 0x5d8c03
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593dfe
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
mov edx, dword [ebp - 0x3c]
push edx
push 0x5d8c06
lea ecx, [ebp - 0x103c]
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e06
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593dde
lea edx, [ebp - 0x203c]
push edx
call fcn.0044f890
add esp, 0x10
cmp edi, 3
jne 0x4788e6
push 0x200
push 2
push 0x593e0e
lea ecx, [ebp - 0x30]
push ecx
call fcn.0044f890
add esp, 0x10
xor eax, eax
mov al, bl
lea edx, [ebp - 0x103c]
push eax
push 0x5d8c09
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593e2e
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
lea eax, [ebp - 0x103c]
push esi
push 0x5d8c0e
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e30
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
push ecx
push 0x5d8c11
lea eax, [ebp - 0x103c]
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e38
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593e10
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
cmp edi, 4
jne 0x4789b9
push 0x200
push 2
push 0x593e40
lea eax, [ebp - 0x30]
push eax
call fcn.0044f890
add esp, 0x10
xor edx, edx
mov dl, bl
lea ecx, [ebp - 0x103c]
push edx
push 0x5d8c14
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593e60
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push esi
push 0x5d8c19
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e62
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
mov eax, dword [ebp - 0x3c]
push eax
push 0x5d8c1c
lea edx, [ebp - 0x103c]
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e6a
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593e42
lea eax, [ebp - 0x203c]
push eax
call fcn.0044f890
add esp, 0x10
cmp edi, 5
jne 0x478a8c
push 0x200
push 2
push 0x593e72
lea edx, [ebp - 0x30]
push edx
call fcn.0044f890
add esp, 0x10
xor ecx, ecx
mov cl, bl
lea eax, [ebp - 0x103c]
push ecx
push 0x5d8c1f
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593e92
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
lea ecx, [ebp - 0x103c]
push esi
push 0x5d8c24
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e94
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
mov edx, dword [ebp - 0x3c]
push edx
push 0x5d8c27
lea ecx, [ebp - 0x103c]
push ecx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593e9c
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593e74
lea edx, [ebp - 0x203c]
push edx
call fcn.0044f890
add esp, 0x10
cmp edi, 6
jne 0x478b5f
push 0x200
push 2
push 0x593ea4
lea ecx, [ebp - 0x30]
push ecx
call fcn.0044f890
add esp, 0x10
xor eax, eax
mov al, bl
lea edx, [ebp - 0x103c]
push eax
push 0x5d8c2a
push edx
call fcn.004d26c8
add esp, 0xc
push 0x200
push 2
push 0x593ec4
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
lea eax, [ebp - 0x103c]
push esi
push 0x5d8c2f
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593ec6
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
push ecx
push 0x5d8c32
lea eax, [ebp - 0x103c]
push eax
call fcn.004d26c8
add esp, 0xc
push 0x200
push 8
push 0x593ece
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x1e
push 0x593ea6
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
lea eax, [ebp - 0x203c]
xor ecx, ecx
push eax
mov cl, bl
mov edx, dword [ebp - 0x38]
push edx
push ecx
push esi
mov ecx, edi
mov eax, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x303c]
movsx edx, byte [ebp - 0x30]
shl ecx, 4
push edx
add ecx, 0x1100
push ecx
push 0x5d8c35
push eax
call fcn.004d26c8
add esp, 0x24
test byte [0x516435], 2
je 0x478bbb
lea edx, [ebp - 0x303c]
push edx
push 0x5d8c4e
push 0x516438
call fcn.00451598
add esp, 0xc
inc edi
mov ecx, edi
shl ecx, 4
add ecx, 0x1100
cmp ecx, 0x1190
jg 0x478bf5
movsx eax, byte [ebp - 0x30]
cmp eax, 0x5a
jne 0x478be1
mov byte [ebp - 0x30], 0x41
jmp 0x4783de
inc byte [ebp - 0x30]
movsx edx, byte [ebp - 0x30]
cmp edx, 0x43
je 0x478bf5
inc dword [ebp - 0x34]
jmp 0x4783de
lea ecx, [ebp - 0x103c]
push ecx
push 0
push 1
call fcn.00410e14
add esp, 0xc
test byte [0x516435], 2
je 0x478c2a
lea eax, [ebp - 0x103c]
push eax
push 0x5d8c58
push 0x516438
call fcn.00451598
add esp, 0xc
push 0x200
push 0x32
push 0x593faa
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov cl, byte [ebp - 0x103c]
test cl, cl
je 0x478c6d
lea eax, [ebp - 0x103c]
push eax
push 0x1501
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0
push 2
call fcn.00410e14
add esp, 0xc
push 0x200
push 0x32
push 0x594040
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
mov al, byte [ebp - 0x103c]
test al, al
je 0x478cc3
lea edx, [ebp - 0x103c]
push edx
push 0x1541
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea ecx, [ebp - 0x103c]
push ecx
push 0
push 3
call fcn.00410e14
add esp, 0xc
push 0x200
push 0x32
push 0x594072
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
mov dl, byte [ebp - 0x103c]
test dl, dl
je 0x478d19
lea ecx, [ebp - 0x103c]
push ecx
push 0x1551
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea eax, [ebp - 0x103c]
push eax
push 0
push 5
call fcn.00410e14
add esp, 0xc
push 0x200
push 0x32
push 0x5940a4
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov cl, byte [ebp - 0x103c]
test cl, cl
je 0x478d6f
lea eax, [ebp - 0x103c]
push eax
push 0x1561
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0
push 6
call fcn.00410e14
add esp, 0xc
push 0x200
push 0x32
push 0x593f78
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
mov al, byte [ebp - 0x103c]
test al, al
je 0x478dc5
lea edx, [ebp - 0x103c]
push edx
push 0x1531
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
push 1
lea ecx, [ebp - 0x103c]
push 0x104
push ecx
push 0x5d8c8b
push 0x5d8c61
push 0x80000002
call fcn.00406a20
add esp, 0x18
test eax, eax
jne 0x478e13
push 1
lea eax, [ebp - 0x103c]
push 0x104
push eax
push 0x5d8cc3
push 0x5d8c96
push 0x80000002
call fcn.00406a20
add esp, 0x18
push 0x200
push 0x28
push 0x593edc
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
mov cl, byte [ebp - 0x103c]
test cl, cl
je 0x478e56
lea eax, [ebp - 0x103c]
push eax
push 0x1023
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
call fcn.0040f780
pop ecx
push 0x200
push 6
push 0x593ed6
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
mov al, byte [ebp - 0x103c]
test al, al
je 0x478ea6
lea edx, [ebp - 0x103c]
push edx
push 0x1020
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
push 0x594336
call fcn.00477520
pop ecx
mov ecx, dword [0x594336]
push ecx
push 0x5d8ccd
push 0x200
call fcn.0045174c
add esp, 0xc
push 0x4b0
push 0x594866
call fcn.00476e58
add esp, 8
or dword [0x594336], eax
mov eax, dword [0x594336]
push eax
push 0x5d8cd7
push 0x200
call fcn.0045174c
add esp, 0xc
test byte [0x516435], 2
je 0x478f1a
push 0x5d8ceb
push 0x5d8ce2
push 0x516438
call fcn.00451598
add esp, 0xc
call fcn.00477964
mov word [ebp - 0x14], 8
xor ebx, ebx
mov byte [ebp - 0x103c], 0
lea eax, [ebx + 1]
lea edx, [ebp - 0x303c]
and eax, 0xfff
lea ecx, [ebp - 0x203c]
push eax
push edx
push ecx
lea eax, [ebp - 0x103c]
push eax
push 0
call fcn.00416174
add esp, 0x14
test al, al
jne 0x478f80
lea edx, [ebp - 0x103c]
mov esi, ebx
push edx
push esi
push 4
call fcn.00410e14
add esp, 0xc
lea eax, [ebp - 0x203c]
push 0
push esi
push eax
call fcn.0043f874
add esp, 0xc
mov dl, byte [ebp - 0x103c]
test dl, dl
je 0x479160
mov esi, ebx
lea ecx, [ebp - 0x103c]
shl esi, 4
push ecx
mov eax, esi
add eax, 0x1300
push eax
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea edx, [ebp - 0x203c]
mov ecx, esi
add ecx, 0x1303
push edx
push ecx
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea eax, [ebp - 0x303c]
push eax
add esi, 0x1305
push esi
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
test ebx, ebx
jne 0x47904b
push 0x200
push 0x32
push 0x593fdc
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x59400e
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x594027
lea eax, [ebp - 0x303c]
push eax
call fcn.0044f890
add esp, 0x10
cmp ebx, 1
jne 0x4790a1
push 0x200
push 0x32
push 0x5940d6
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x594108
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x594121
lea eax, [ebp - 0x303c]
push eax
call fcn.0044f890
add esp, 0x10
cmp ebx, 2
jne 0x4790f7
push 0x200
push 0x32
push 0x5941d0
lea edx, [ebp - 0x103c]
push edx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x594202
lea ecx, [ebp - 0x203c]
push ecx
call fcn.0044f890
add esp, 0x10
push 0x200
push 0x19
push 0x59421b
lea eax, [ebp - 0x303c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
lea ecx, [ebp - 0x203c]
push edx
push ecx
lea eax, [ebp - 0x303c]
push 0x5d8cec
push eax
call fcn.004cdfec
pop ecx
lea edx, [ebp - 0x303c]
add eax, edx
push eax
call fcn.004d26c8
add esp, 0x10
test byte [0x516435], 2
je 0x47914a
lea ecx, [ebp - 0x303c]
push ecx
push 0x5d8cf5
push 0x516438
call fcn.00451598
add esp, 0xc
inc ebx
mov eax, ebx
shl eax, 4
add eax, 0x1300
cmp eax, 0x1390
jbe 0x478f27
lea edx, [ebp - 0x103c]
push edx
call fcn.004c64c8
pop ecx
push 0x200
push 0x32
push 0x594234
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0044f890
add esp, 0x10
lea eax, [ebp - 0x103c]
push eax
push 0x1701
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea edx, [ebp - 0x203c]
push edx
lea ecx, [ebp - 0x103c]
push ecx
call fcn.004c6530
add esp, 8
push 0x200
push 0x32
push 0x594266
lea eax, [ebp - 0x203c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x203c]
push edx
push 0x1703
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
lea ecx, [ebp - 0x103c]
push ecx
call fcn.0040aa60
pop ecx
push 0x200
push 0x14
push 0x59418e
lea eax, [ebp - 0x103c]
push eax
call fcn.0044f890
add esp, 0x10
lea edx, [ebp - 0x103c]
push edx
push 0x1003
push 0x4b0
push 0x594866
call fcn.0047653c
add esp, 0x10
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x479269
mov eax, dword [ebp - 0x2c]
push eax
push 0x5d8cfe
push 0x200
call fcn.0045174c
add esp, 0xc
mov edx, dword [ebp - 0x2c]
push edx
push 0x477ba4
call fcn.00401c38
add esp, 8
test byte [0x516435], 2
je 0x479289
push 0x5d8d16
push 0x5d8d0c
push 0x516438
call fcn.00451598
add esp, 0xc
mov al, 1
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
jmp 0x4792c6
mov esp, ebp
mov edi, dword [ebp - 0x3048]
mov esi, dword [ebp - 0x3044]
mov ebx, dword [ebp - 0x3040]
pop ebp
ret