Function at 0x41d030
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4be1ff
mov eax, dword fs:[0]
push eax
sub esp, 0xb68
mov eax, dword [0x4e44b4]
xor eax, esp
mov dword [esp + 0xb30], eax
push ebx
push esi
push edi
mov eax, dword [0x4e44b4]
xor eax, esp
push eax
lea eax, [esp + 0xb78]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1ac], 7
mov dword [esp + 0x1a8], ebx
mov word [esp + 0x198], bx
sub esp, 0x1c
mov dword [esp + 0xb9c], ebx
mov ecx, esp
mov dword [esp + 0x4c], esp
push 0xb
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4ca3d0
mov byte [esp + 0x67], bl
lea esi, [esp + 0x1b8]
mov byte [ecx + 4], bl
call fcn.00402d90
call fcn.00401be0
add esp, 0x1c
cmp al, bl
jne 0x41d1ce
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x4c], esp
push 0x13
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4ca3dc
mov byte [ecx + 4], bl
call fcn.00402d90
call fcn.00401be0
mov esi, 1
add esp, 0x1c
cmp dword [0x4e8f68], esi
mov byte [esp + 0x42], al
jne 0x41d151
call fcn.004722e0
cmp eax, 3
jg 0x41d151
cmp byte [esp + 0x42], bl
jne 0x41d151
push 3
push 0x184
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetuppre_installcheck_path.cpp
lea ecx, [esp + 0x10c]
call fcn.00473160
add eax, 4
push str.Check_failed:_result.
mov byte [esp + 0xb84], 1
push eax
mov dword [esp + 0x4c], esi
call fcn.004041d0
add esp, 8
mov dword [esp + 0xb80], ebx
test byte [esp + 0x44], 1
je 0x41d170
and dword [esp + 0x44], 0xfffffffe
lea ecx, [esp + 0x100]
call fcn.00472c30
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x4c], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x1b8]
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push eax
mov word [ecx + 4], bx
call fcn.004031a0
sub esp, 0x1c
mov byte [esp + 0xbb8], 2
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0xb
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4ca3d0
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
jmp 0x41d1d3
mov esi, 1
lea ecx, [esp + 0x30]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x54], esp
push 9
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4ca4a8
mov dword [esp + 0x58], ebx
mov byte [ecx + 4], bl
call fcn.00402d90
call fcn.00401db0
add esp, 0x20
cmp dword [0x4e8f68], esi
mov byte [esp + 0x42], al
jne 0x41d254
call fcn.004722e0
cmp eax, 3
jg 0x41d254
cmp byte [esp + 0x42], bl
jne 0x41d254
push 3
push 0x18b
push str.R:BuildWorkTempQQ1.87HummerPack4921AutoProject_setup3HummerSetuppre_installcheck_path.cpp
lea ecx, [esp + 0x10c]
call fcn.00473160
add eax, 4
push str.Check_failed:_result.
mov byte [esp + 0xb84], 3
or dword [esp + 0x48], 2
push eax
call fcn.004041d0
add esp, 8
mov dword [esp + 0xb80], ebx
test byte [esp + 0x44], 2
je 0x41d26e
lea ecx, [esp + 0x100]
call fcn.00472c30
cmp dword [esp + 0x1ac], 8
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x198]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ebx
jae 0x41d292
lea esi, [esp + 0x198]
call fcn.0041b9d0
test al, al
jne 0x41d36a
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 5
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.false
mov byte [ecx + 4], bl
call fcn.00402d90
sub esp, 0x1c
mov byte [esp + 0xbb8], 4
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xb
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.IsValidPath
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], bl
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x11
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push 0x4ce6d4
mov word [ecx + 4], bx
call fcn.00405680
sub esp, 0x1c
mov byte [esp + 0xbb8], 5
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xe
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.InvalidWording
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
cmp dword [esp + 0x1ac], 8
jb 0x41e63d
mov eax, dword [esp + 0x198]
push eax
call fcn.00495fd1
add esp, 4
jmp 0x41e63d
lea ecx, [esp + 0x194]
push ecx
lea ecx, [esp + 0x1b4]
call fcn.00475a60
lea edx, [esp + 0x1cc]
push edx
lea ecx, [esp + 0x1b4]
mov byte [esp + 0xb84], 6
call fcn.00475bf0
lea ecx, [esp + 0x58]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 7
call fcn.00475ff0
push eax
lea ecx, [esp + 0x1b4]
mov byte [esp + 0xb84], 8
call fcn.00475e00
lea ecx, [esp + 0x58]
mov byte [esp + 0xb80], 7
call fcn.00475620
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], 6
call fcn.00475620
cmp dword [esp + 0x1c8], 8
mov esi, dword [esp + 0x1b4]
jae 0x41d400
lea esi, [esp + 0x1b4]
sub esp, 0x1c
mov ecx, esp
mov eax, esi
lea edx, [eax + 2]
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x50], esp
mov word [ecx + 4], bx
mov dword [esp + 0x4c], edx
mov dx, word [eax]
add eax, 2
cmp dx, bx
jne 0x41d420
sub eax, dword [esp + 0x4c]
sar eax, 1
push eax
push esi
call fcn.00405680
sub esp, 0x1c
mov byte [esp + 0xbb8], 9
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xb
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x4ca3d0
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], 6
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x1b0]
call fcn.004755f0
test al, al
jne 0x41d534
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 5
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.false
mov byte [ecx + 4], bl
call fcn.00402d90
sub esp, 0x1c
mov byte [esp + 0xbb8], 0xa
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xb
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.IsValidPath
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], 6
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce6d4
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0xb
mov ecx, esp
mov dword [esp + 0x68], esp
push 0xe
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.InvalidWording
mov byte [ecx + 4], bl
call fcn.00402d90
mov byte [esp + 0xbb8], 6
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x1b0]
mov byte [esp + 0xb80], bl
call fcn.00475620
jmp 0x41d347
lea ecx, [esp + 0x1b0]
lea ebx, [esp + 0xe4]
call fcn.00445040
lea ecx, [esp + 0xc8]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 0xc
call fcn.00475bf0
lea edx, [esp + 0x290]
push edx
mov ecx, eax
mov byte [esp + 0xb84], 0xd
call fcn.00475ff0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xb80], 0xf
call fcn.00475620
mov ecx, ebx
mov byte [esp + 0xb80], 0x10
call fcn.00475620
lea eax, [esp + 0x290]
push eax
mov ebx, 0x4cacf4
lea esi, [esp + 0x1d0]
call fcn.0041e710
mov edi, 8
add esp, 4
cmp dword [eax + 0x18], edi
jb 0x41d5c3
mov eax, dword [eax + 4]
jmp 0x41d5c6
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp dword [esp + 0x1e4], edi
mov esi, eax
jb 0x41d5e8
mov ecx, dword [esp + 0x1d0]
push ecx
call fcn.00495fd1
add esp, 4
cmp esi, 3
jne 0x41d877
lea ecx, [esp + 0x1cc]
mov dword [0x4edaf4], 1
call fcn.00475600
lea edx, [esp + 0x1cc]
push edx
push 0x66
mov byte [esp + 0xb88], 0x11
call fcn.00476de0
add esp, 8
lea ecx, [esp + 0x1cc]
lea ebx, [esp + 0x23c]
call fcn.00445040
mov esi, eax
lea ecx, [esp + 0x1b0]
lea ebx, [esp + 0x58]
mov byte [esp + 0xb80], 0x12
call fcn.00445040
push esi
mov ecx, eax
mov byte [esp + 0xb84], 0x13
call fcn.00475a90
lea ecx, [esp + 0x58]
mov bl, al
mov byte [esp + 0xb80], 0x12
call fcn.00475620
lea ecx, [esp + 0x23c]
mov byte [esp + 0xb80], 0x11
call fcn.00475620
neg bl
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], 0x10
sbb ebx, ebx
add ebx, 2
mov dword [0x4edaf4], ebx
call fcn.00475620
lea eax, [esp + 0x1b0]
push eax
lea ecx, [esp + 0x224]
call fcn.00475a60
lea ecx, [esp + 0x1b0]
lea ebx, [esp + 0xac]
mov byte [esp + 0xb80], 0x16
call fcn.00445040
lea ecx, [esp + 0x2c8]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 0x17
call fcn.00475bf0
mov ecx, ebx
mov byte [esp + 0xb80], 0x19
call fcn.00475620
lea edx, [esp + 0x220]
push edx
call fcn.00473b00
add esp, 4
test al, al
jne 0x41d773
mov bl, 0x1a
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x224]
call fcn.00475e20
push eax
lea ecx, [esp + 0x224]
mov byte [esp + 0xb84], bl
call fcn.00475e00
lea ecx, [esp + 0x58]
mov byte [esp + 0xb80], 0x19
call fcn.00475620
lea ecx, [esp + 0x2c8]
push ecx
lea ecx, [esp + 0x224]
call fcn.00475a90
test al, al
jne 0x41d773
lea edx, [esp + 0x220]
push edx
call fcn.00473b00
add esp, 4
test al, al
je 0x41d711
lea eax, [esp + 0x220]
push eax
call fcn.00473b40
add esp, 4
test al, al
jne 0x41d921
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x1b
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x19
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce6f8
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], 0x19
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x2c8]
mov byte [esp + 0xb80], 0x16
call fcn.00475620
lea ecx, [esp + 0x220]
mov byte [esp + 0xb80], 0x10
call fcn.00475620
lea ecx, [esp + 0x290]
mov byte [esp + 0xb80], 6
call fcn.00475620
lea ecx, [esp + 0x1b0]
mov byte [esp + 0xb80], 0
call fcn.00475620
cmp dword [esp + 0x1ac], 8
jb 0x41e63d
mov ecx, dword [esp + 0x198]
push ecx
call fcn.00495fd1
add esp, 4
jmp 0x41e63d
cmp esi, 2
jne 0x41d908
mov dword [0x4edaf4], 5
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x14
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov bl, 0x10
mov byte [esp + 0xbb8], bl
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce6d4
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x15
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
jmp 0x41e609
cmp esi, 4
jne 0x41d88a
mov dword [0x4edaf4], esi
mov byte [esp + 0x43], 1
jmp 0x41d6a6
xor edi, edi
cmp byte [esp + 0x43], 0
jne 0x41da1e
lea edx, [esp + 0x220]
push edx
call fcn.0047fc20
add esp, 4
cmp dword [esp + 0x48], edx
jl 0x41da1e
jg 0x41d954
cmp dword [esp + 0x44], eax
jb 0x41da1e
push 0x616
lea eax, [esp + 0x52a]
push edi
push eax
mov word [esp + 0x530], di
call fcn.00499a30
fild qword [esp + 0x50]
fld qword [0x4d3dc8]
add esp, 4
lea ecx, [esp + 0x52c]
fmul st(1), st(0)
fmulp st(1)
fstp qword [esp]
push 0x4ce730
push 0x618
push 0x30c
push ecx
call fcn.00496163
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x1d
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x19
call fcn.00401980
add esp, 0x1c
lea edx, [esp + 0x540]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x1e
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], 0x19
call fcn.00401b00
add esp, 0x38
jmp 0x41e5e1
lea ecx, [esp + 0x204]
call fcn.00475600
mov dword [esp + 0x2c4], 7
mov dword [esp + 0x2c0], edi
mov word [esp + 0x2b0], di
sub esp, 0x1c
mov bl, 0x20
mov byte [esp + 0xb9c], bl
mov ecx, esp
mov dword [esp + 0x50], esp
push str.OldUserDataSavePath
lea esi, [esp + 0x2cc]
call fcn.00402090
call fcn.00401be0
add esp, 0x1c
test al, al
je 0x41db09
mov eax, esi
push eax
lea ecx, [esp + 0x5c]
call fcn.00475a60
push eax
lea ecx, [esp + 0x208]
mov byte [esp + 0xb84], 0x21
call fcn.00475e00
lea ecx, [esp + 0x58]
mov byte [esp + 0xb80], bl
call fcn.00475620
lea ecx, [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x208]
call fcn.00475bf0
lea edx, [esp + 0x58]
push edx
mov ecx, eax
mov byte [esp + 0xb84], 0x22
call fcn.00475ff0
push eax
lea ecx, [esp + 0x208]
mov byte [esp + 0xb84], 0x23
call fcn.00475e00
lea ecx, [esp + 0x58]
mov byte [esp + 0xb80], 0x22
call fcn.00475620
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], bl
call fcn.00475620
mov dword [esp + 0x28c], 7
mov dword [esp + 0x288], edi
mov word [esp + 0x278], di
sub esp, 0x1c
mov byte [esp + 0xb9c], 0x24
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ca3f0
lea esi, [esp + 0x294]
call fcn.00402090
call fcn.00401be0
add esp, 0x1c
test al, al
jne 0x41dcd0
lea ecx, [esp + 0x23c]
call fcn.00475600
push 1
push 5
lea eax, [esp + 0x324]
push eax
mov bl, 0x25
push edi
mov byte [esp + 0xb90], bl
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x41dcbc
push str.Tencent_Files
lea ecx, [esp + 0x5c]
call fcn.00405140
lea ecx, [esp + 0x31c]
push ecx
lea ecx, [esp + 0x1d0]
mov byte [esp + 0xb84], 0x26
call fcn.00405140
lea edx, [esp + 0x1cc]
push edx
lea ecx, [esp + 0x78]
mov byte [esp + 0xb84], 0x27
call fcn.00475a60
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x94]
push edx
mov ecx, eax
mov byte [esp + 0xb88], 0x28
call fcn.00476020
push eax
lea ecx, [esp + 0x240]
mov byte [esp + 0xb84], 0x29
call fcn.00475e00
lea ecx, [esp + 0x90]
mov byte [esp + 0xb80], 0x28
call fcn.00475620
lea ecx, [esp + 0x74]
mov byte [esp + 0xb80], 0x27
call fcn.00475620
lea ecx, [esp + 0x1cc]
call fcn.00402400
lea ecx, [esp + 0x58]
mov byte [esp + 0xb80], bl
call fcn.00402400
sub esp, 0x1c
lea eax, [esp + 0x258]
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00405180
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x2a
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x4ca3f0
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x54], esp
push 0x4ca418
call fcn.00402090
call fcn.00401d20
mov eax, dword [esp + 0x260]
add esp, 0x20
cmp dword [esp + 0x254], 8
jae 0x41dcaf
lea eax, [esp + 0x240]
push eax
lea ecx, [esp + 0x278]
call fcn.0040cc80
lea ecx, [esp + 0x23c]
mov byte [esp + 0xb80], 0x24
call fcn.00475620
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esp + 0x1ec]
call fcn.00475a60
lea edx, [esp + 0x90]
mov bl, 0x2b
push edx
lea ecx, [esp + 0x1ec]
mov byte [esp + 0xb84], bl
call fcn.00475bf0
lea ecx, [esp + 0x74]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 0x2c
call fcn.00475ff0
push eax
lea ecx, [esp + 0x1ec]
mov byte [esp + 0xb84], 0x2d
call fcn.00475e00
lea ecx, [esp + 0x74]
mov byte [esp + 0xb80], 0x2c
call fcn.00475620
lea ecx, [esp + 0x90]
mov byte [esp + 0xb80], bl
call fcn.00475620
cmp dword [esp + 0x200], 8
mov esi, dword [esp + 0x1ec]
jae 0x41dd66
lea esi, [esp + 0x1ec]
call fcn.0041b9d0
test al, al
jne 0x41ddef
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x2e
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce798
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x2f
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
jmp 0x41e5a1
lea ecx, [esp + 0x1e8]
lea ebx, [esp + 0x90]
call fcn.00445040
lea edx, [esp + 0x74]
push edx
mov ecx, eax
mov byte [esp + 0xb84], 0x30
call fcn.00475bf0
lea ecx, [esp + 0x2e4]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 0x31
call fcn.00475ff0
lea ecx, [esp + 0x74]
mov byte [esp + 0xb80], 0x33
call fcn.00475620
mov ecx, ebx
mov byte [esp + 0xb80], 0x34
call fcn.00475620
lea edx, [esp + 0x2e4]
push edx
mov ebx, 0x4cacf4
lea esi, [esp + 0x5c]
call fcn.0041e710
add esp, 4
cmp dword [eax + 0x18], 8
jb 0x41de71
mov eax, dword [eax + 4]
jmp 0x41de74
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.00402400
cmp esi, 3
je 0x41df16
cmp esi, 2
je 0x41df16
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x35
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov bl, 0x34
mov byte [esp + 0xbb8], bl
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce798
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x36
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
jmp 0x41e58d
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0x25c]
call fcn.00475a60
lea ecx, [esp + 0x1e8]
lea ebx, [esp + 0x58]
mov byte [esp + 0xb80], 0x37
call fcn.00445040
lea ecx, [esp + 0x300]
push ecx
mov ecx, eax
mov byte [esp + 0xb84], 0x38
call fcn.00475bf0
mov ecx, ebx
mov byte [esp + 0xb80], 0x3a
call fcn.00475620
lea edx, [esp + 0x258]
push edx
call fcn.00473b00
add esp, 4
test al, al
jne 0x41dfe8
mov bl, 0x3b
mov edi, edi
lea eax, [esp + 0x1cc]
push eax
lea ecx, [esp + 0x25c]
call fcn.00475e20
push eax
lea ecx, [esp + 0x25c]
mov byte [esp + 0xb84], bl
call fcn.00475e00
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], 0x3a
call fcn.00475620
lea ecx, [esp + 0x300]
push ecx
lea ecx, [esp + 0x25c]
call fcn.00475a90
test al, al
jne 0x41dfe8
lea edx, [esp + 0x258]
push edx
call fcn.00473b00
add esp, 4
test al, al
je 0x41df80
lea eax, [esp + 0x258]
push eax
call fcn.00473b40
add esp, 4
test al, al
jne 0x41e07e
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x3c
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce7c8
call fcn.00405140
mov byte [esp + 0xb9c], 0x3d
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401b00
add esp, 0x38
jmp 0x41e565
call fcn.00404f00
test al, al
je 0x41e13d
lea ecx, [esp + 0x1cc]
call fcn.00475600
lea ecx, [esp + 0x1cc]
push ecx
push 0x65
mov byte [esp + 0xb88], 0x3e
call fcn.00476de0
add esp, 8
lea ecx, [esp + 0x23c]
call fcn.00475600
lea edx, [esp + 0x23c]
push edx
mov bl, 0x3f
push 0x67
mov byte [esp + 0xb88], bl
call fcn.00476de0
lea eax, [esp + 0x1f0]
push eax
lea ecx, [esp + 0x1d8]
push ecx
call fcn.0047e980
add esp, 0x10
test al, al
jne 0x41e1c6
lea edx, [esp + 0x1e8]
push edx
lea eax, [esp + 0x240]
push eax
call fcn.0047e980
add esp, 8
test al, al
jne 0x41e1c6
lea ecx, [esp + 0x23c]
mov byte [esp + 0xb80], 0x3e
call fcn.00475620
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], 0x3a
call fcn.00475620
cmp dword [esp + 0x218], 0
je 0x41e26a
lea ecx, [esp + 0x1e8]
push ecx
lea edx, [esp + 0x208]
push edx
call fcn.0047e980
add esp, 8
test al, al
je 0x41e26a
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x42
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce810
call fcn.00405140
mov byte [esp + 0xb9c], 0x43
jmp 0x41e056
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x40
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401980
add esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 0x4ce7c8
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x41
mov ecx, esp
mov dword [esp + 0x68], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], bl
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x23c]
mov byte [esp + 0xb80], 0x3e
call fcn.00475620
lea ecx, [esp + 0x1cc]
mov byte [esp + 0xb80], 0x3a
call fcn.00475620
jmp 0x41e565
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0x208]
call fcn.00475ab0
neg al
sbb eax, eax
neg eax
cmp dword [esp + 0x218], 0
mov dword [0x4edafc], eax
je 0x41e51b
lea ecx, [esp + 0x1e8]
push ecx
lea ecx, [esp + 0x208]
call fcn.00475ab0
test al, al
je 0x41e51b
cmp dword [esp + 0x21c], 8
mov edx, dword [esp + 0x208]
mov dword [esp + 0x30], 0x1388
jae 0x41e2d3
lea edx, [esp + 0x208]
lea ecx, [esp + 0x30]
call fcn.0041c3c0
mov dword [esp + 0x50], edx
lea edx, [esp + 0x258]
push edx
mov dword [esp + 0x50], eax
call fcn.0047fc20
add esp, 4
lea ecx, [esp + 0x1b0]
lea ebx, [esp + 0x23c]
mov dword [esp + 0x34], eax
mov edi, edx
call fcn.00445040
mov esi, eax
lea ecx, [esp + 0x1e8]
lea ebx, [esp + 0x1cc]
mov byte [esp + 0xb80], 0x44
call fcn.00445040
push esi
mov ecx, eax
mov byte [esp + 0xb84], 0x45
call fcn.00475a90
lea ecx, [esp + 0x1cc]
mov bl, al
mov byte [esp + 0xb80], 0x44
call fcn.00475620
lea ecx, [esp + 0x23c]
mov byte [esp + 0xb80], 0x3a
call fcn.00475620
test bl, bl
mov eax, dword [esp + 0x34]
je 0x41e374
sub eax, dword [esp + 0x44]
sbb edi, dword [esp + 0x48]
cmp edi, dword [esp + 0x50]
jg 0x41e51b
jl 0x41e38a
cmp eax, dword [esp + 0x4c]
jae 0x41e51b
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.false
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x46
mov ecx, esp
mov dword [esp + 0x7c], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401980
xor ebx, ebx
push 0x206
lea eax, [esp + 0x35a]
push ebx
push eax
mov word [esp + 0x360], bx
call fcn.00499a30
fild qword [esp + 0x90]
fld qword [0x4d3dc8]
add esp, 0x44
sub esp, 8
fmul st(1), st(0)
lea ecx, [esp + 0x324]
fmulp st(1)
fstp qword [esp]
push 0x4ce860
push 0x104
push 0x208
push ecx
call fcn.00496163
push ecx
lea edx, [esp + 0x338]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00405140
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x47
mov ecx, esp
mov dword [esp + 0x7c], esp
push str.InvalidWording
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401b00
add esp, 0x38
lea ecx, [esp + 0x300]
mov byte [esp + 0xb80], 0x37
call fcn.00475620
lea ecx, [esp + 0x258]
mov byte [esp + 0xb80], 0x34
call fcn.00475620
lea ecx, [esp + 0x2e4]
mov byte [esp + 0xb80], 0x2b
call fcn.00475620
lea ecx, [esp + 0x1e8]
mov byte [esp + 0xb80], 0x24
call fcn.00475620
lea ecx, [esp + 0x274]
call fcn.00402400
lea ecx, [esp + 0x2ac]
call fcn.00402400
lea ecx, [esp + 0x204]
mov byte [esp + 0xb80], 0x19
call fcn.00475620
lea ecx, [esp + 0x2c8]
mov byte [esp + 0xb80], 0x16
call fcn.00475620
lea ecx, [esp + 0x220]
mov byte [esp + 0xb80], 0x10
call fcn.00475620
lea ecx, [esp + 0x290]
mov byte [esp + 0xb80], 6
call fcn.00475620
mov byte [esp + 0xb80], bl
jmp 0x41e625
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push str.true
call fcn.00402090
sub esp, 0x1c
mov byte [esp + 0xbb8], 0x48
mov ecx, esp
mov dword [esp + 0x68], esp
push str.IsValidPath
call fcn.00402090
mov byte [esp + 0xbb8], 0x3a
call fcn.00401980
add esp, 0x38
lea ecx, [esp + 0x1b0]
call fcn.0041cb90
lea ecx, [esp + 0x300]
mov byte [esp + 0xb80], 0x37
call fcn.00475620
lea ecx, [esp + 0x258]
mov byte [esp + 0xb80], 0x34
call fcn.00475620
lea ecx, [esp + 0x2e4]
mov byte [esp + 0xb80], 0x2b
call fcn.00475620
lea ecx, [esp + 0x1e8]
mov byte [esp + 0xb80], 0x24
call fcn.00475620
lea ecx, [esp + 0x274]
call fcn.00402400
lea ecx, [esp + 0x2ac]
call fcn.00402400
lea ecx, [esp + 0x204]
mov byte [esp + 0xb80], 0x19
call fcn.00475620
lea ecx, [esp + 0x2c8]
mov byte [esp + 0xb80], 0x16
call fcn.00475620
lea ecx, [esp + 0x220]
mov byte [esp + 0xb80], 0x10
call fcn.00475620
lea ecx, [esp + 0x290]
mov byte [esp + 0xb80], 6
call fcn.00475620
mov byte [esp + 0xb80], 0
lea ecx, [esp + 0x1b0]
call fcn.00475620
lea ecx, [esp + 0x194]
call fcn.00402400
mov ecx, dword [esp + 0xb78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb30]
xor ecx, esp
call fcn.00495cb8
mov esp, ebp
pop ebp
ret 4