Function at 0x406d90
Capabilities:
Get disk information
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1400
call fcn.00481410
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x13fc], eax
push ebp
mov ebp, dword [esp + 0x1408]
push esi
push ebp
call fcn.004069f0
mov eax, dword [ebp + 0x19c]
add esp, 4
push 1
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp dword [ebp + 0x6e0], 0xffffffff
jne 0x406dda
mov dword [esp + 8], 0xfffffffe
push ebx
push edi
lea ecx, [esp + 0x3ec]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x8c]
push eax
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [eax + 0x4fd29c]
lea edx, [esp + 0x20]
push edx
push ecx
call fcn.00434a30
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4081fc
push eax
push eax
mov eax, dword [ebp + 0x6f4]
neg eax
sbb eax, eax
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0xc18]
and eax, ecx
push eax
lea edx, [esp + 0x2dc]
push edx
lea eax, [esp + 0x7c]
push eax
push 0
lea ecx, [esp + 0xc8]
push ecx
lea edx, [esp + 0x14c]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [ebp + 0x1c0]
imul ecx, ecx, 0x7ec
lea edx, [esp + 0x50]
push edx
mov edx, dword [ecx + 0x4fd29c]
lea eax, [esp + 0x44]
push eax
push edx
call fcn.00438590
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4081fc
mov eax, dword [ebp + 0x1c0]
mov ecx, dword [ebp + 0x1a0]
imul eax, eax, 0x7ec
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
add eax, 0x4fd318
push eax
push 0x417
push ecx
call esi
mov edx, dword [esp + 0x28]
neg edx
sbb edx, edx
add edx, 5
push edx
call fcn.0046d6b0
add esp, 4
push eax
mov eax, dword [ebp + 0x1a0]
push 0x41a
push eax
call esi
mov eax, dword [esp + 0x78]
cmp eax, 0xffffffff
mov edi, 0x612f6e
je 0x406f10
push eax
call fcn.0046db90
add esp, 4
lea edx, [esp + 0x1ac]
mov edi, edi
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x406f00
jmp 0x406f17
mov dword [esp + 0x1ac], edi
mov edx, dword [ebp + 0x1a0]
lea ecx, [esp + 0x1ac]
push ecx
push 0x427
push edx
call esi
mov eax, dword [esp + 0x70]
push eax
call fcn.0046db90
mov ecx, dword [ebp + 0x1a0]
add esp, 4
push eax
push 0x41b
push ecx
call esi
mov eax, dword [esp + 0x7c]
cmp eax, 0xffffffff
je 0x406f72
push eax
call fcn.0046db90
add esp, 4
lea edx, [esp + 0x1ac]
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x406f62
jmp 0x406f79
mov dword [esp + 0x1ac], edi
mov eax, dword [ebp + 0x1a0]
lea edx, [esp + 0x1ac]
push edx
push 0x42a
push eax
call esi
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
cmp byte [eax + 0x4fd3d5], 0
lea eax, [eax + 0x4fd3d5]
je 0x406fc1
lea edx, [esp + 0x1ac]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x406fb3
jmp 0x406fc8
mov dword [esp + 0x1ac], edi
mov edx, dword [ebp + 0x1a0]
lea ecx, [esp + 0x1ac]
push ecx
push 0x42c
push edx
call esi
mov eax, dword [esp + 0x12c]
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
je 0x407047
xor esi, esi
mov byte [esp + 0x1ac], 0
lea esp, [esp]
lea ecx, [esp + 0x1ac]
lea edi, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x407010
sub ecx, edi
cdq
mov edi, 0xa
idiv edi
push edx
push eax
lea eax, [esp + ecx + 0x1b4]
push 0x49e914
push eax
call ebx
mov eax, dword [esp + esi*4 + 0x140]
add esi, 1
add esp, 0x10
test eax, eax
jne 0x407000
jmp 0x40704e
mov dword [esp + 0x1ac], edi
mov edx, dword [ebp + 0x1a0]
lea ecx, [esp + 0x1ac]
push ecx
push 0x41d
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4070c7
xor esi, esi
mov byte [esp + 0x1ac], 0
lea ecx, [ecx]
lea ecx, [esp + 0x1ac]
lea edi, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x407090
sub ecx, edi
cdq
mov edi, 0xa
idiv edi
push edx
push eax
lea eax, [esp + ecx + 0x1b4]
push 0x49e914
push eax
call ebx
mov eax, dword [esp + esi*4 + 0xc0]
add esi, 1
add esp, 0x10
test eax, eax
jne 0x407080
jmp 0x4070d2
mov dword [esp + 0x1ac], 0x612f6e
mov edx, dword [ebp + 0x1a0]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea ecx, [esp + 0x1ac]
push ecx
push 0x42d
push edx
call esi
test dword [esp + 0x10], 0x1ffc0
je 0x407120
cmp dword [esp + 0x14], 1
mov ecx, str.Borders
jg 0x407109
mov ecx, str.Border
lea edx, [esp + 0x1ac]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x407110
jmp 0x407146
cmp dword [esp + 0x14], 1
mov ecx, str.Sessions
jg 0x407131
mov ecx, str.Session
lea edx, [esp + 0x1ac]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x407138
lea edi, [esp + 0x1ac]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x407150
mov edx, dword [ebp + 0x1a0]
mov ax, word [0x49e8ec]
lea ecx, [esp + 0x1ac]
push ecx
push 0x41f
push edx
mov word [edi], ax
call esi
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x1b0]
push 0x49e59c
push ecx
call ebx
mov eax, dword [ebp + 0x1a0]
add esp, 0xc
lea edx, [esp + 0x1ac]
push edx
push 0x41e
push eax
call esi
cmp dword [esp + 0x10], 0x40
jne 0x4071d5
xor ecx, ecx
cmp dword [esp + 0x68], 1
setne cl
add ecx, 4
push ecx
call fcn.0046d6b0
push eax
lea edx, [esp + 0x1b4]
push 0x49e8e8
push edx
call ebx
add esp, 0x10
jmp 0x4071e0
mov dword [esp + 0x1ac], 0x612f6e
mov ecx, dword [ebp + 0x1a0]
lea eax, [esp + 0x1ac]
push eax
push 0x426
push ecx
call esi
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
lea eax, [eax + 0x4fd1b8]
lea edx, [esp + 0x2ec]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x407211
lea edx, [esp + 0x2ec]
push edx
call fcn.00475fa0
add esp, 4
push 0
push 0
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x7c]
push edx
push 0x100
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x308]
push ecx
mov byte [esp + 0x1cc], 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x4072b7
mov eax, dword [ebp + 0x1a0]
lea edx, [esp + 0x1ac]
push edx
push 0x4a6
push eax
call esi
mov eax, dword [esp + 0x6c]
movzx ecx, ax
push ecx
shr eax, 0x10
push eax
lea edx, [esp + 0x2f4]
push str._04X__04X
push edx
call ebx
mov ecx, dword [ebp + 0x1a0]
add esp, 0x10
lea eax, [esp + 0x2ec]
push eax
push 0x42b
push ecx
jmp 0x4072db
mov edx, dword [ebp + 0x1a0]
push 0x49e8d8
push 0x4a6
push edx
call esi
mov eax, dword [ebp + 0x1a0]
push 0x49e8d8
push 0x42b
push eax
call esi
cmp dword [esp + 0x10], 2
jne 0x407316
cmp dword [esp + 0x28], 1
jne 0x407316
mov eax, dword [esp + 0x64]
mov ecx, eax
and ecx, 0xff
push ecx
movzx edx, ah
movzx eax, byte [esp + 0x6a]
push edx
push eax
lea ecx, [esp + 0x1b8]
push str._02d:_02d:_02d
push ecx
call ebx
add esp, 0x14
jmp 0x407321
mov dword [esp + 0x1ac], 0x612f6e
mov eax, dword [ebp + 0x1a0]
lea edx, [esp + 0x1ac]
push edx
push 0x423
push eax
call esi
mov ecx, dword [esp + 0x10]
push ecx
push ebp
call fcn.004603c0
mov esi, 0x1ffc0
add esp, 8
test dword [esp + 0x10], esi
mov dword [esp + 0x8c], 4
mov dword [esp + 0x98], str.Zone
jne 0x407371
mov dword [esp + 0x98], str.Track
mov eax, dword [ebp + 0x19c]
lea edx, [esp + 0x8c]
push edx
push 0
push 0x101a
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
test dword [esp + 0x10], esi
mov dword [esp + 0x98], str.Border
jne 0x4073a9
mov dword [esp + 0x98], str.Session
mov edx, dword [ebp + 0x19c]
lea ecx, [esp + 0x8c]
push ecx
push 1
push 0x101a
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
xor ebx, ebx
xor edi, edi
cmp dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], ebx
jle 0x407f81
jmp 0x4073e0
lea eax, [esp + 0x5c]
push eax
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
lea ecx, [esp + 0x64]
push ecx
mov ecx, dword [eax + 0x4fd29c]
lea edx, [esp + 0x38]
push edx
push edi
push ecx
call fcn.0043a0d0
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4081fc
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x60]
lea ecx, [eax + edx]
cmp eax, ecx
mov esi, eax
mov dword [esp + 0x18], eax
jge 0x407f70
lea ecx, [ecx]
mov edx, dword [ebp + 0x6f4]
mov eax, dword [ebp + 0x6f0]
xor edi, edi
neg edx
sbb edx, edx
push edi
lea ecx, [esp + 0x410]
and edx, ecx
push edx
mov edx, eax
neg edx
sbb edx, edx
lea ecx, [esp + 0x2b4]
and edx, ecx
push edx
neg eax
sbb eax, eax
lea edx, [esp + 0x80]
and eax, edx
push eax
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
mov ecx, dword [eax + 0x4fd29c]
push edi
push edi
push esi
push ecx
call fcn.0043a220
cmp eax, edi
mov dword [esp + 0x20], eax
jne 0x4081fc
mov edx, dword [ebp + 0x1c0]
imul edx, edx, 0x1fb
add edx, esi
mov eax, dword [edx*4 + 0x4fd3f4]
test eax, 0x1000
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], eax
jne 0x4074e2
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x1b0]
push str.__02d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4074ec
mov word [esp + 0x1ac], 0x20
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x1fb
add eax, esi
mov eax, dword [eax*4 + 0x4fd3f4]
test eax, 0x1000
lea edx, [esp + 0x1ac]
mov dword [esp + 0x48], edx
je 0x40751d
mov dword [esp + 0x50], 0xb
jmp 0x40756b
test dword [esp + 0x10], 0x1ffc0
je 0x407531
mov dword [esp + 0x50], 0xf
jmp 0x40756b
test eax, 0x2000
je 0x407547
add dword [esp + 0x2c], 1
mov dword [esp + 0x50], 0xc
jmp 0x40756b
test eax, 0x4000
je 0x407558
mov dword [esp + 0x50], 0xd
jmp 0x40756b
and eax, 0x8000
neg eax
sbb eax, eax
and eax, 3
add eax, 0xb
mov dword [esp + 0x50], eax
mov edx, dword [ebp + 0x19c]
lea ecx, [esp + 0x34]
push ecx
push edi
push 0x1007
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, dword [esp + 0x30]
mov eax, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
jne 0x407a40
mov esi, dword [esp + 0x1c]
lea eax, [esi + 1]
push eax
lea ecx, [esp + 0x1b0]
push 0x49e59c
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [esp + 0x1b8]
add esp, 0xc
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4075c2
test dword [esp + 0x10], 0x1ffc0
mov edx, dword [0x49e5ac]
mov dword [edi], edx
je 0x40767b
mov eax, dword [esp + 0x14]
add eax, 0xffffffff
cmp esi, eax
jne 0x4078a9
mov edx, dword [esp + 0x5c]
test edx, 0x100
je 0x407636
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407607
mov ecx, dword [str.Appendable]
mov dword [eax], ecx
mov ecx, dword [0x49e8b0]
mov dword [eax + 4], ecx
mov cx, word [0x49e8b4]
mov word [eax + 8], cx
mov cl, byte [0x49e8b6]
mov byte [eax + 0xa], cl
test edx, 0x200
je 0x4078a9
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407650
mov edx, dword [str.Closed]
mov cx, word [0x49e8a8]
mov dword [eax], edx
mov dl, byte [0x49e8aa]
mov word [eax + 4], cx
mov byte [eax + 6], dl
jmp 0x4078a9
mov edx, dword [esp + 0x5c]
test dl, 1
je 0x4076ad
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov edi, edi
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407690
mov ecx, dword [str.TAO_]
mov dword [eax], ecx
mov cx, word [0x49e8a0]
mov word [eax + 4], cx
test dl, 2
mov esi, dword [esp + 0x14]
je 0x40771d
cmp dword [esp + 0x1c], 0
jne 0x4076f3
cmp esi, 1
jne 0x4076f3
test edx, 0x200
je 0x4076f3
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4076d8
mov ecx, dword [str.DAO_]
mov dword [eax], ecx
mov cx, word [0x49e898]
jmp 0x407719
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea ecx, [ecx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407700
mov ecx, dword [str.SAO_]
mov dword [eax], ecx
mov cx, word [0x49e890]
mov word [eax + 4], cx
test edx, 0x1000
je 0x407754
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
nop
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407730
mov ecx, dword [str.CDDA_CD_ROM]
mov dword [eax], ecx
mov ecx, dword [0x49e884]
mov dword [eax + 4], ecx
mov ecx, dword [0x49e888]
mov dword [eax + 8], ecx
test edx, 0x2000
je 0x407783
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407766
mov cx, word [0x49e87c]
mov word [eax], cx
mov cl, byte [0x49e87e]
mov byte [eax + 2], cl
test edx, 0x4000
je 0x4077b0
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407795
mov ecx, dword [str.CD_i]
mov dword [eax], ecx
mov cl, byte [0x49e878]
mov byte [eax + 4], cl
test edx, 0x7000
je 0x4077d5
lea edi, [esp + 0x1ac]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4077c2
mov ax, word [0x49e870]
mov word [edi], ax
add esi, 0xffffffff
cmp dword [esp + 0x1c], esi
jne 0x4078a9
test edx, 0x8000
je 0x407828
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4077f4
mov ecx, dword [str.Incomplete]
mov edx, dword [0x49e868]
mov dword [eax], ecx
mov cx, word [0x49e86c]
mov dword [eax + 4], edx
mov dl, byte [0x49e86e]
mov word [eax + 8], cx
mov byte [eax + 0xa], dl
jmp 0x4078a9
test edx, 0x100
je 0x407871
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea ebx, [ebx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407840
mov ecx, dword [str.Appendable]
mov edx, dword [0x49e8b0]
mov dword [eax], ecx
mov cx, word [0x49e8b4]
mov dword [eax + 4], edx
mov dl, byte [0x49e8b6]
mov word [eax + 8], cx
mov byte [eax + 0xa], dl
jmp 0x4078a9
test edx, 0x200
je 0x4078a9
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407883
mov ecx, dword [str.Closed]
mov dx, word [0x49e8a8]
mov dword [eax], ecx
mov cl, byte [0x49e8aa]
mov word [eax + 4], dx
mov byte [eax + 6], cl
cmp dword [esp + 0x28], 0
je 0x407933
lea edi, [esp + 0x1ac]
add edi, 0xffffffff
mov edi, edi
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x4078c0
mov edx, dword [0x49e860]
push 0x17
mov dword [edi], edx
call fcn.0046d6b0
add esp, 4
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4078e0
lea edi, [esp + 0x1ac]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x4078f7
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1ac]
add edi, 0xffffffff
lea esp, [esp]
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x407920
mov ax, word [0x49e85c]
mov word [edi], ax
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 0x19c]
lea edx, [esp + 0x34]
push edx
push 0
push 0x1006
lea ecx, [esp + 0x1b8]
push eax
mov dword [esp + 0x58], ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp + 0x1c0]
imul ecx, ecx, 0x1fb
add ecx, esi
mov edi, dword [ecx*4 + 0x4fd3f4]
test edi, 0x1000
jne 0x407f36
test dword [esp + 0x10], 0x1ffc0
mov dword [esp + 0x3c], 2
mov byte [esp + 0x1ac], 0
je 0x407a4d
test edi, 0x4000
je 0x4079d4
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea esp, [esp]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4079b0
mov edx, dword [str.DVD_Zone]
mov ecx, dword [0x49e854]
mov dword [eax], edx
mov dl, byte [0x49e858]
mov dword [eax + 4], ecx
mov byte [eax + 8], dl
test edi, 0x80000
je 0x407c2f
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea ebx, [ebx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x4079f0
mov cx, word [0x49e6cc]
mov dl, byte [0x49e6ce]
mov word [eax], cx
mov byte [eax + 2], dl
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407a17
mov ecx, dword [str.Reserved]
mov edx, dword [0x49e848]
mov dword [eax], ecx
mov cl, byte [0x49e84c]
mov dword [eax + 4], edx
mov byte [eax + 8], cl
jmp 0x407c2f
mov byte [esp + 0x1ac], 0
jmp 0x407937
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
test edi, 0x2000
je 0x407a82
nop
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407a60
mov edx, dword [str.Audio]
mov cx, word [0x49e840]
mov dword [eax], edx
mov word [eax + 4], cx
jmp 0x407af6
test edi, 0x4000
je 0x407a9c
lea ebx, [ebx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407a90
jmp 0x407ada
test edi, 0x8000
je 0x407ad0
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407aa4
mov ecx, dword [str.Mode_2_XA]
mov edx, dword [0x49e834]
mov dword [eax], ecx
mov cx, word [0x49e838]
mov dword [eax + 4], edx
mov word [eax + 8], cx
jmp 0x407af6
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407ad0
mov edx, dword [str.Mode_1]
mov cx, word [0x49e82c]
mov dword [eax], edx
mov dl, byte [0x49e82e]
mov word [eax + 4], cx
mov byte [eax + 6], dl
test edi, 0x10000
mov dl, byte [0x49e6ce]
mov si, word [0x49e6cc]
je 0x407b68
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407b15
mov word [eax], si
mov byte [eax + 2], dl
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
nop
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407b30
mov ecx, dword [str.Packet_Writing]
mov dword [eax], ecx
mov ecx, dword [0x49e81c]
mov dword [eax + 4], ecx
mov ecx, dword [0x49e820]
mov dword [eax + 8], ecx
mov cx, word [0x49e824]
mov word [eax + 0xc], cx
mov cl, byte [0x49e826]
mov byte [eax + 0xe], cl
test edi, 0x20000
je 0x407bcd
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea ebx, [ebx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407b80
mov word [eax], si
mov byte [eax + 2], dl
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
lea ebx, [ebx]
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407ba0
mov ecx, dword [str.Pre_emphasis]
mov dword [eax], ecx
mov ecx, dword [0x49e600]
mov dword [eax + 4], ecx
mov ecx, dword [0x49e604]
mov dword [eax + 8], ecx
mov cl, byte [0x49e608]
mov byte [eax + 0xc], cl
test edi, 0x40000
je 0x407c2f
lea eax, [esp + 0x1ac]
add eax, 0xffffffff
nop
mov cl, byte [eax + 1]
add eax, 1
test cl, cl
jne 0x407be0
mov word [eax], si
push 0xd7
mov byte [eax + 2], dl
call fcn.0046d6b0
add esp, 4
mov ecx, eax
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x407c00
lea edi, [esp + 0x1ac]
sub eax, ecx
mov esi, ecx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x407c17
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x19c]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x34]
push eax
push 0
push 0x1006
lea edx, [esp + 0x1b8]
push ecx
mov dword [esp + 0x58], edx
call esi
test byte [esp + 0x10], 7
mov dword [esp + 0x3c], 3
jne 0x407c71
mov dword [esp + 0x1ac], 0x612f6e
jmp 0x407cb3
cmp dword [ebp + 0x6f0], 0
je 0x407c97
mov edx, dword [esp + 0x74]
push edx
lea eax, [esp + 0x1b0]
push 0x49e59c
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x407cb3
mov cx, word [0x49e814]
mov dl, byte [0x49e816]
mov word [esp + 0x1ac], cx
mov byte [esp + 0x1ae], dl
mov edx, dword [ebp + 0x19c]
lea ecx, [esp + 0x34]
push ecx
push 0
push 0x1006
lea eax, [esp + 0x1b8]
push edx
mov dword [esp + 0x58], eax
call esi
mov eax, dword [ebp + 0x1c0]
mov edi, dword [esp + 0x18]
imul eax, eax, 0x1fb
add eax, edi
mov ecx, dword [eax*4 + 0x4fd580]
push ecx
mov dword [esp + 0x40], 4
call fcn.0046db90
add esp, 4
lea edx, [esp + 0x1ac]
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x407d04
mov ecx, dword [ebp + 0x19c]
lea eax, [esp + 0x34]
push eax
push 0
push 0x1006
lea edx, [esp + 0x1b8]
push ecx
mov dword [esp + 0x58], edx
call esi
mov eax, dword [ebp + 0x1c0]
mov edx, dword [ebp + 0x6ec]
imul eax, eax, 0x1fb
add eax, edi
add eax, eax
add eax, eax
mov ebx, 0x2000
test dword [eax + 0x4fd3f4], ebx
mov eax, dword [eax + 0x4fd70c]
push edx
lea ecx, [esp + 0x1b0]
push eax
mov dword [esp + 0x44], 5
push ecx
je 0x407d76
call fcn.0046ee70
jmp 0x407d7b
call fcn.00471a00
mov ecx, dword [ebp + 0x19c]
add esp, 0xc
lea eax, [esp + 0x34]
push eax
push 0
push 0x1006
lea edx, [esp + 0x1b8]
push ecx
mov dword [esp + 0x58], edx
call esi
cmp dword [esp + 0x10], 0x40
mov dword [esp + 0x3c], 6
jge 0x407e04
mov edx, dword [ebp + 0x1c0]
imul edx, edx, 0x1fb
add edx, edi
test dword [edx*4 + 0x4fd3f4], ebx
je 0x407e04
cmp dword [ebp + 0x6f0], 0
je 0x407de7
xor eax, eax
nop
mov cl, byte [esp + eax + 0x2ac]
mov byte [esp + eax + 0x1ac], cl
add eax, 1
test cl, cl
jne 0x407dd0
jmp 0x407e0f
mov ax, word [0x49e814]
mov cl, byte [0x49e816]
mov word [esp + 0x1ac], ax
mov byte [esp + 0x1ae], cl
jmp 0x407e0f
mov dword [esp + 0x1ac], 0x612f6e
mov ecx, dword [ebp + 0x19c]
lea eax, [esp + 0x34]
push eax
push 0
push 0x1006
lea edx, [esp + 0x1b8]
push ecx
mov dword [esp + 0x58], edx
call esi
test byte [esp + 0x10], 7
je 0x407ea8
mov edx, dword [ebp + 0x1c0]
imul edx, edx, 0x1fb
add edx, edi
test dword [edx*4 + 0x4fd3f4], ebx
je 0x407ea8
cmp dword [ebp + 0x6f4], 0
je 0x407e7c
lea eax, [esp + 0x40c]
push eax
lea ecx, [esp + 0x2f0]
push ecx
lea edx, [esp + 0x1b4]
push edx
call fcn.0046f0a0
add esp, 0xc
jmp 0x407ebb
mov ax, word [0x49e814]
mov cl, byte [0x49e816]
mov word [esp + 0x1ac], ax
mov byte [esp + 0x1ae], cl
mov word [esp + 0x2ec], ax
mov byte [esp + 0x2ee], cl
jmp 0x407ebb
mov eax, 0x612f6e
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x2ec], eax
mov edx, dword [ebp + 0x19c]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x34]
push ecx
push 0
push 0x1006
lea eax, [esp + 0x1b8]
push edx
mov dword [esp + 0x4c], 7
mov dword [esp + 0x58], eax
call esi
mov edx, dword [ebp + 0x19c]
lea ecx, [esp + 0x34]
push ecx
push 0
push 0x1006
lea eax, [esp + 0x2f8]
push edx
mov dword [esp + 0x4c], 8
mov dword [esp + 0x58], eax
call esi
mov eax, dword [ebp + 0x1c0]
mov esi, dword [esp + 0x18]
imul eax, eax, 0x1fb
add eax, dword [esp + 0x18]
add eax, eax
mov ebx, dword [eax + eax + 0x4fd70c]
add eax, eax
add ebx, dword [eax + 0x4fd580]
cmp dword [ebp + 0x6f0], 0
je 0x407f53
mov eax, dword [ebp + 0x19c]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
call fcn.00432430
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x30]
add esi, 1
add edx, ecx
cmp esi, edx
mov dword [esp + 0x18], esi
jl 0x407430
mov edi, dword [esp + 0x1c]
add edi, 1
cmp edi, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
jl 0x4073e0
test dword [esp + 0x10], 0x1ffc0
je 0x407fb3
cmp dword [esp + 0x24], 1
mov ecx, str.Zones
jg 0x407f9c
mov ecx, str.Zone
lea edx, [esp + 0x1ac]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x407fa3
jmp 0x407fde
cmp dword [esp + 0x24], 1
mov ecx, str.Tracks
jg 0x407fc4
mov ecx, str.Track
lea edx, [esp + 0x1ac]
jmp 0x407fd0
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x407fd0
lea edi, [esp + 0x1ac]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x407fe8
mov edx, dword [ebp + 0x1a0]
mov ax, word [0x49e8ec]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea ecx, [esp + 0x1ac]
push ecx
push 0x420
push edx
mov word [edi], ax
call esi
mov ecx, dword [ebp + 0x1c0]
mov eax, dword [esp + 0x24]
imul ecx, ecx, 0x1fb
add ecx, eax
test dword [ecx*4 + 0x4fd3f0], 0x1000
jne 0x408046
push eax
push 0x49e59c
lea edx, [esp + 0x1b4]
push edx
jmp 0x408084
cmp eax, 1
jne 0x408073
mov eax, dword [str.1_Invisible]
mov ecx, dword [0x49e7fc]
mov edx, dword [0x49e800]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1b4], edx
jmp 0x40808d
add eax, 0xffffffff
push eax
push str._d__1_Invisible
lea eax, [esp + 0x1b4]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov edx, dword [ebp + 0x1a0]
lea ecx, [esp + 0x1ac]
push ecx
push 0x421
push edx
call esi
cmp dword [esp + 0x2c], 0
jne 0x4080b8
mov edi, 0x612f6e
mov dword [esp + 0x1ac], edi
jmp 0x4080da
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x2cc]
mov byte [esp + eax + 0x1ac], cl
add eax, 1
test cl, cl
jne 0x4080c0
mov edi, 0x612f6e
mov ecx, dword [ebp + 0x1a0]
lea eax, [esp + 0x1ac]
push eax
push 0x424
push ecx
call esi
test byte [esp + 0x10], 7
je 0x408175
cmp dword [esp + 0x24], 0
jle 0x408175
mov edx, dword [ebp + 0x1c0]
imul edx, edx, 0x7ec
test dword [edx + 0x4fd3f4], 0x2000
je 0x408175
cmp dword [ebp + 0x6f4], 0
je 0x408149
lea eax, [esp + 0xc0c]
push eax
lea ecx, [esp + 0x2f0]
push ecx
lea edx, [esp + 0x1b4]
push edx
call fcn.0046f0a0
add esp, 0xc
jmp 0x408183
mov ax, word [0x49e814]
mov cl, byte [0x49e816]
mov word [esp + 0x1ac], ax
mov byte [esp + 0x1ae], cl
mov word [esp + 0x2ec], ax
mov byte [esp + 0x2ee], cl
jmp 0x408183
mov dword [esp + 0x1ac], edi
mov dword [esp + 0x2ec], edi
mov ecx, dword [ebp + 0x1a0]
lea eax, [esp + 0x1ac]
push eax
push 0x429
push ecx
call esi
mov eax, dword [ebp + 0x1a0]
lea edx, [esp + 0x2ec]
push edx
push 0x428
push eax
call esi
mov eax, dword [ebp + 0x1c0]
imul eax, eax, 0x7ec
test dword [eax + 0x4fd304], 0x2000
je 0x4081d4
mov ecx, 0x3fac10
sub ecx, dword [eax + 0x4fd3a0]
jmp 0x4081d6
mov ecx, ebx
push ecx
call fcn.0046db90
mov ecx, dword [ebp + 0x1a0]
add esp, 4
push eax
push 0x41c
push ecx
call esi
cmp dword [esp + 0x28], 0
jne 0x4081fc
mov eax, 1
jmp 0x4081fe
xor eax, eax
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
xor edx, edx
test eax, eax
mov eax, dword [ebp + 0x19c]
setne dl
add edx, 0xfffe
mov esi, edx
push esi
push 1
push 0x101e
push eax
call edi
mov ecx, dword [ebp + 0x19c]
push esi
push 2
push 0x101e
push ecx
call edi
mov esi, dword [esp + 0x20]
test esi, esi
pop edi
pop ebx
je 0x40826e
mov edx, dword [ebp + 0x1c0]
imul edx, edx, 0x7ec
mov eax, dword [edx + 0x4fd29c]
push esi
push eax
call fcn.0046de30
mov ecx, dword [ebp + 0x1a0]
add esp, 8
push eax
push 0x417
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [esp + 0x1404]
mov eax, esi
pop esi
pop ebp
xor ecx, esp
call fcn.004810ab
add esp, 0x1400
ret