Function at 0x525790
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5417df
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1558
call fcn.00521720
mov eax, dword [0x5857cc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
push 8
lea ecx, [ebp - 0x1558]
xor ebx, ebx
push ecx
mov dword [ebp - 0x151c], eax
mov dword [ebp - 0x1508], ebx
mov dword [ebp - 0x1524], ebx
call dword [sym.imp.WINMM.dll_timeGetDevCaps]
mov edx, dword [ebp - 0x1554]
push edx
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov edi, 0xf
mov dword [ebp - 4], ebx
mov dword [ebp - 0xa90], ebx
mov dword [ebp - 0xa8c], ebx
mov dword [ebp - 0xa88], ebx
mov dword [ebp - 0xa80], ebx
mov dword [ebp - 0xa7c], ebx
mov dword [ebp - 0xa78], ebx
mov dword [ebp - 0xa94], 0x564acc
mov dword [ebp - 0xa5c], edi
mov dword [ebp - 0xa60], ebx
mov byte [ebp - 0xa70], bl
mov eax, dword [0x54548c]
cmp dword [eax], 1
mov byte [ebp - 4], 1
jle 0x52594a
mov ecx, dword [0x545488]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
mov eax, edx
mov dword [ebp - 0xa40], edi
mov dword [ebp - 0xa44], ebx
mov byte [ebp - 0xa54], bl
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x525875
sub eax, esi
push eax
push edx
lea ecx, [ebp - 0xa54]
call fcn.00401bf0
push 1
push 0xffffffffffffffff
push 0x55cd10
lea ecx, [ebp - 0xa54]
mov byte [ebp - 4], 2
call fcn.00465160
cmp eax, 0xffffffff
je 0x52591b
push eax
push ebx
lea eax, [ebp - 0xc8c]
push eax
lea ecx, [ebp - 0xa54]
call fcn.0043ddb0
push eax
lea ecx, [ebp - 0xa54]
mov byte [ebp - 4], 3
call fcn.00406850
mov esi, 0x10
cmp dword [ebp - 0xc78], esi
jb 0x5258e8
mov ecx, dword [ebp - 0xc8c]
push ecx
call fcn.0052142e
add esp, 4
mov eax, dword [ebp - 0xa54]
mov dword [ebp - 0xc78], edi
mov dword [ebp - 0xc7c], ebx
mov byte [ebp - 0xc8c], 0
cmp dword [ebp - 0xa40], esi
jae 0x52590f
lea eax, [ebp - 0xa54]
push eax
call dword [0x545484]
add esp, 4
jmp 0x525920
mov esi, 0x10
cmp dword [ebp - 0xa40], esi
jb 0x525937
mov edx, dword [ebp - 0xa54]
push edx
call fcn.0052142e
add esp, 4
mov dword [ebp - 0xa40], edi
mov dword [ebp - 0xa44], ebx
mov byte [ebp - 0xa54], 0
lea eax, [ebp - 0xa1c]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [ebp - 0x1518], ebx
mov dword [ebp - 0x1514], ebx
mov dword [ebp - 0x1510], ebx
mov byte [ebp - 4], 4
xor edi, edi
jmp 0x525980
mov ecx, dword [0x54548c]
cmp edi, dword [ecx]
jge 0x525a1a
mov edx, dword [0x545488]
mov eax, dword [edx]
mov ecx, dword [eax + edi*4]
mov eax, ecx
mov dword [ebp - 0xb0c], 0xf
mov dword [ebp - 0xb10], ebx
mov byte [ebp - 0xb20], 0
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5259b5
sub eax, esi
push eax
push ecx
lea ecx, [ebp - 0xb20]
call fcn.00401bf0
lea ecx, [ebp - 0xb20]
push ecx
lea ecx, [ebp - 0x1518]
mov byte [ebp - 4], 5
call fcn.00414860
cmp dword [ebp - 0xb0c], 0x10
mov byte [ebp - 4], 4
jb 0x5259fd
mov edx, dword [ebp - 0xb20]
push edx
call fcn.0052142e
add esp, 4
mov dword [ebp - 0xb0c], 0xf
mov dword [ebp - 0xb10], ebx
mov byte [ebp - 0xb20], 0
inc edi
jmp 0x525980
lea eax, [ebp - 0x1518]
push eax
lea ecx, [ebp - 0xa94]
call fcn.00448c10
lea ecx, [ebp - 0xa94]
push ecx
push 0x59c8c8
mov dword [0x59c8e4], 0x320
mov dword [0x59c8e8], 0x258
mov dword [0x59c914], ebx
mov word [0x59c8f0], 0x100
call fcn.00418270
add esp, 8
cmp byte [0x59c97c], 0
je 0x525c5f
mov edx, dword [ebp - 0x1518]
push edx
lea eax, [ebp - 0xa38]
push eax
call fcn.004f3cd0
add esp, 8
mov edi, dword [ebp - 0xa24]
mov eax, dword [ebp - 0xa38]
mov byte [ebp - 4], 6
mov cl, 0x2f
mov dl, 0x5c
cmp edi, 8
jae 0x525aa5
lea eax, [ebp - 0xa38]
mov esi, dword [ebp - 0xa28]
lea esi, [eax + esi*2]
mov eax, dword [ebp - 0xa38]
cmp edi, 8
jae 0x525ac0
lea eax, [ebp - 0xa38]
nop
cmp eax, esi
je 0x525adc
movzx edi, word [eax]
movsx ebx, dl
cmp edi, ebx
jne 0x525ad5
movsx di, cl
mov word [eax], di
add eax, 2
xor ebx, ebx
jmp 0x525ac0
mov eax, dword [ebp - 0xa38]
mov edi, 8
cmp dword [ebp - 0xa24], edi
jae 0x525af5
lea eax, [ebp - 0xa38]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x525c2b
mov ecx, dword [ebp - 0x1518]
push ecx
lea edx, [ebp - 0xcc4]
push edx
call fcn.004f3cd0
add esp, 8
cmp dword [eax + 0x14], edi
jb 0x525b2d
mov eax, dword [eax]
push ebx
push eax
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
cmp dword [ebp - 0xcb0], edi
jb 0x525b4e
mov eax, dword [ebp - 0xcc4]
push eax
call fcn.0052142e
add esp, 4
xor ecx, ecx
mov edi, 7
mov dword [ebp - 0xcb0], edi
mov dword [ebp - 0xcb4], ebx
mov word [ebp - 0xcc4], cx
cmp esi, ebx
je 0x525b73
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
cmp dword [ebp - 0xa24], 8
jb 0x525b8b
mov edx, dword [ebp - 0xa38]
push edx
call fcn.0052142e
add esp, 4
xor eax, eax
mov word [ebp - 0xa38], ax
mov eax, dword [ebp - 0x1518]
mov dword [ebp - 0xa24], edi
mov dword [ebp - 0xa28], ebx
cmp eax, ebx
je 0x525bd4
mov ecx, dword [ebp - 0x1520]
push ecx
mov ecx, dword [ebp - 0x1514]
lea edx, [ebp - 0x150c]
push edx
push ecx
push eax
call fcn.00412710
mov edx, dword [ebp - 0x1518]
push edx
call fcn.0052142e
add esp, 0x14
cmp dword [ebp - 0xa5c], 0x10
mov dword [ebp - 0x1518], ebx
mov dword [ebp - 0x1514], ebx
mov dword [ebp - 0x1510], ebx
mov byte [ebp - 4], 0
jb 0x525c02
mov eax, dword [ebp - 0xa70]
push eax
call fcn.0052142e
add esp, 4
lea ecx, [ebp - 0xa94]
mov dword [ebp - 0xa5c], 0xf
mov dword [ebp - 0xa60], ebx
mov byte [ebp - 0xa70], 0
call fcn.00448990
xor eax, eax
jmp 0x5268e3
mov byte [ebp - 4], 4
cmp dword [ebp - 0xa24], edi
jb 0x525c46
mov ecx, dword [ebp - 0xa38]
push ecx
call fcn.0052142e
add esp, 4
xor edx, edx
mov dword [ebp - 0xa24], 7
mov dword [ebp - 0xa28], ebx
mov word [ebp - 0xa38], dx
push 5
mov esi, 0xf
push str.EMPTY
lea ecx, [ebp - 0xb74]
mov dword [ebp - 0xb60], esi
mov dword [ebp - 0xb64], ebx
mov byte [ebp - 0xb74], 0
call fcn.00401bf0
lea eax, [ebp - 0xb74]
push eax
mov ecx, 0x59c980
mov byte [ebp - 4], 7
call fcn.00523360
mov dword [eax], ebx
cmp dword [ebp - 0xb60], 0x10
mov byte [ebp - 4], 4
jb 0x525cbc
mov ecx, dword [ebp - 0xb74]
push ecx
call fcn.0052142e
add esp, 4
push 7
push str.DEFAULT
lea ecx, [ebp - 0xb58]
mov dword [ebp - 0xb60], esi
mov dword [ebp - 0xb64], ebx
mov byte [ebp - 0xb74], 0
mov dword [ebp - 0xb44], esi
mov dword [ebp - 0xb48], ebx
mov byte [ebp - 0xb58], 0
call fcn.00401bf0
lea edx, [ebp - 0xb58]
push edx
mov ecx, 0x59c980
mov byte [ebp - 4], 8
call fcn.00523360
push 0x7f00
push ebx
mov esi, eax
call dword [sym.imp.USER32.dll_LoadCursorW]
mov edi, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0xb44], edi
jb 0x525d39
mov eax, dword [ebp - 0xb58]
push eax
call fcn.0052142e
add esp, 4
cmp byte [0x59c8f1], 0
mov esi, 0xf
mov dword [ebp - 0xb44], esi
mov dword [ebp - 0xb48], ebx
mov byte [ebp - 0xb58], 0
je 0x525de1
push 7
push str.DEFAULT
lea ecx, [ebp - 0xacc]
mov dword [ebp - 0xab8], esi
mov dword [ebp - 0xabc], ebx
mov byte [ebp - 0xacc], 0
call fcn.00401bf0
or dword [ebp - 0x1508], 1
lea ecx, [ebp - 0xacc]
push ecx
mov ecx, 0x59c980
mov byte [ebp - 4], 9
call fcn.00523360
test byte [ebp - 0x1508], 1
mov edx, dword [eax]
mov dword [0x59c634], edx
mov dword [ebp - 4], 4
je 0x525de1
cmp dword [ebp - 0xab8], edi
jb 0x525dce
mov eax, dword [ebp - 0xacc]
push eax
call fcn.0052142e
add esp, 4
mov dword [ebp - 0xab8], esi
mov dword [ebp - 0xabc], ebx
mov byte [ebp - 0xacc], 0
xor ecx, ecx
lea eax, [ebp - 0xa1c]
mov dword [ebp - 0xad4], 7
mov dword [ebp - 0xad8], ebx
mov word [ebp - 0xae8], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x525e03
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0xa1c]
push edx
lea ecx, [ebp - 0xae8]
call fcn.00421790
lea eax, [ebp - 0xae8]
push eax
lea ecx, [ebp - 0xab0]
push ecx
mov byte [ebp - 4], 0xa
call fcn.004f3a90
add esp, 8
mov edi, 8
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0xad4], edi
jb 0x525e5f
mov edx, dword [ebp - 0xae8]
push edx
call fcn.0052142e
add esp, 4
xor eax, eax
mov dword [ebp - 0xad4], 7
mov dword [ebp - 0xad8], ebx
mov word [ebp - 0xae8], ax
cmp dword [0x59c928], ebx
je 0x526066
cmp dword [0x59c944], ebx
je 0x526066
push 0x55cd10
lea ecx, [ebp - 0xc54]
push 0x59c918
push ecx
call fcn.0040d8a0
add esp, 0xc
push 0x59c934
push eax
lea edx, [ebp - 0xc00]
push edx
mov byte [ebp - 4], 0xd
call fcn.0040d980
add esp, 0xc
cmp dword [ebp - 0xc40], 0x10
mov byte [ebp - 4], 0xf
jb 0x525ede
mov eax, dword [ebp - 0xc54]
push eax
call fcn.0052142e
add esp, 4
lea ecx, [ebp - 0xc00]
push ecx
lea edx, [ebp - 0xc70]
push edx
mov dword [ebp - 0xc40], esi
mov dword [ebp - 0xc44], ebx
mov byte [ebp - 0xc54], 0
call fcn.004f3cd0
add esp, 8
cmp dword [eax + 0x14], edi
jb 0x525f0e
mov eax, dword [eax]
lea ecx, [ebp - 0x21c]
push ecx
push eax
xor esi, esi
push esi
push esi
push 0x801a
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
test eax, eax
setns bl
cmp dword [ebp - 0xc5c], 8
jb 0x525f43
mov edx, dword [ebp - 0xc70]
push edx
call fcn.0052142e
add esp, 4
xor eax, eax
mov edi, 7
mov dword [ebp - 0xc5c], edi
mov dword [ebp - 0xc60], esi
mov word [ebp - 0xc70], ax
test bl, bl
je 0x52602b
xor ecx, ecx
lea eax, [ebp - 0x21c]
mov dword [ebp - 0xaf0], edi
mov dword [ebp - 0xaf4], esi
mov word [ebp - 0xb04], cx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x525f83
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0xb04]
call fcn.00421790
lea eax, [ebp - 0xb04]
push eax
lea ecx, [ebp - 0xc1c]
push ecx
mov byte [ebp - 4], 0x10
call fcn.004f3a90
add esp, 8
push eax
lea ecx, [ebp - 0xab0]
mov byte [ebp - 4], 0x11
call fcn.00406850
cmp dword [ebp - 0xc08], 0x10
jb 0x525fe7
mov edx, dword [ebp - 0xc1c]
push edx
call fcn.0052142e
add esp, 4
cmp dword [ebp - 0xaf0], 8
mov dword [ebp - 0xc08], 0xf
mov dword [ebp - 0xc0c], esi
mov byte [ebp - 0xc1c], 0
jb 0x526016
mov eax, dword [ebp - 0xb04]
push eax
call fcn.0052142e
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xaf0], edi
mov dword [ebp - 0xaf4], esi
mov word [ebp - 0xb04], cx
cmp dword [ebp - 0xbec], 0x10
mov byte [ebp - 4], 0xc
jb 0x526047
mov edx, dword [ebp - 0xc00]
push edx
call fcn.0052142e
add esp, 4
xor ebx, ebx
mov dword [ebp - 0xbf0], esi
mov dword [ebp - 0xbec], 0xf
mov byte [ebp - 0xc00], 0
lea esi, [ebx + 0xf]
lea edi, [ebx + 8]
lea eax, [ebp - 0xab0]
push eax
lea ecx, [ebp - 0x1504]
call fcn.00462110
lea ecx, [ebp - 0xca8]
push ecx
mov ecx, eax
call fcn.00411970
push 0x548db0
push eax
lea edx, [ebp - 0xc38]
push edx
mov byte [ebp - 4], 0x12
call fcn.004181b0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x13
call fcn.0046d740
add esp, 4
cmp dword [ebp - 0xc24], 0x10
jb 0x5260c4
mov eax, dword [ebp - 0xc38]
push eax
call fcn.0052142e
add esp, 4
cmp dword [ebp - 0xc94], 0x10
mov dword [ebp - 0xc24], esi
mov dword [ebp - 0xc28], ebx
mov byte [ebp - 0xc38], 0
mov byte [ebp - 4], 0xc
jb 0x5260f3
mov ecx, dword [ebp - 0xca8]
push ecx
call fcn.0052142e
add esp, 4
xor edx, edx
lea eax, [ebp - 0xa1c]
mov word [ebp - 0xb3c], dx
mov dword [ebp - 0xc94], esi
mov dword [ebp - 0xc98], ebx
mov byte [ebp - 0xca8], 0
mov dword [ebp - 0xb28], 7
mov dword [ebp - 0xb2c], ebx
lea edx, [eax + 2]
jmp 0x526130
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x526130
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0xa1c]
push eax
lea ecx, [ebp - 0xb3c]
call fcn.00421790
lea ecx, [ebp - 0xb3c]
push ecx
lea edx, [ebp - 0xbe4]
push edx
mov byte [ebp - 4], 0x14
call fcn.004f3a90
add esp, 8
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x15
jb 0x526178
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x10ec]
call fcn.004620f0
lea ecx, [ebp - 0xbc8]
push ecx
mov ecx, eax
call fcn.00411970
push 0x548db0
push eax
lea edx, [ebp - 0xbac]
push edx
mov byte [ebp - 4], 0x16
call fcn.004181b0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x17
call fcn.0046d720
add esp, 4
cmp dword [ebp - 0xb98], 0x10
jb 0x5261d0
mov eax, dword [ebp - 0xbac]
push eax
call fcn.0052142e
add esp, 4
cmp dword [ebp - 0xbb4], 0x10
mov dword [ebp - 0xb98], esi
mov dword [ebp - 0xb9c], ebx
mov byte [ebp - 0xbac], 0
jb 0x5261fb
mov ecx, dword [ebp - 0xbc8]
push ecx
call fcn.0052142e
add esp, 4
cmp dword [ebp - 0xbd0], 0x10
mov dword [ebp - 0xbb4], esi
mov dword [ebp - 0xbb8], ebx
mov byte [ebp - 0xbc8], 0
jb 0x526226
mov edx, dword [ebp - 0xbe4]
push edx
call fcn.0052142e
add esp, 4
mov dword [ebp - 0xbd0], esi
mov dword [ebp - 0xbd4], ebx
mov byte [ebp - 0xbe4], 0
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0xb28], edi
jb 0x526254
mov eax, dword [ebp - 0xb3c]
push eax
call fcn.0052142e
add esp, 4
mov dl, byte [0x59c8f4]
mov al, byte [0x59c8f0]
xor ecx, ecx
mov word [ebp - 0xb3c], cx
mov ecx, dword [ebp - 0x1518]
mov byte [0x59c648], dl
push ecx
lea edx, [ebp - 0xb90]
push edx
mov dword [ebp - 0xb28], 7
mov dword [ebp - 0xb2c], ebx
mov byte [0x59c883], al
call fcn.004f3cd0
add esp, 8
mov byte [ebp - 4], 0x18
cmp dword [eax + 0x14], edi
jb 0x5262a4
mov eax, dword [eax]
movzx edx, byte [0x59c8f0]
mov ecx, dword [ebp - 0x151c]
push ecx
mov ecx, dword [0x59c8e8]
push edx
mov edx, dword [0x59c8e4]
push ecx
mov ecx, dword [0x59c8f8]
push edx
push str.Loading...
mov edx, eax
call fcn.005253e0
add esp, 0x14
mov dword [0x59c620], eax
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0xb7c], edi
jb 0x5262fb
mov eax, dword [ebp - 0xb90]
push eax
call fcn.0052142e
mov eax, dword [0x59c620]
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xb7c], 7
mov dword [ebp - 0xb80], ebx
mov word [ebp - 0xb90], cx
cmp eax, ebx
jne 0x5263fa
push ebx
push str.Error
push str.Failed_to_create_main_window
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edi, 0x10
cmp dword [ebp - 0xa9c], edi
jb 0x52634a
mov edx, dword [ebp - 0xab0]
push edx
call fcn.0052142e
add esp, 4
mov dword [ebp - 0xa9c], esi
mov dword [ebp - 0xaa0], ebx
mov byte [ebp - 0xab0], 0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1518], ebx
je 0x5263a5
lea ecx, [ebp - 0x1518]
call dword [0x5451bc]
mov eax, dword [ebp - 0x1520]
mov edx, dword [ebp - 0x1514]
push eax
mov eax, dword [ebp - 0x1518]
lea ecx, [ebp - 0x150c]
push ecx
push edx
push eax
call fcn.00412710
mov ecx, dword [ebp - 0x1518]
push ecx
call fcn.0052142e
add esp, 0x14
mov dword [ebp - 0x1518], ebx
mov dword [ebp - 0x1514], ebx
mov dword [ebp - 0x1510], ebx
mov byte [ebp - 4], 0
cmp dword [ebp - 0xa5c], edi
jb 0x5263d2
mov edx, dword [ebp - 0xa70]
push edx
call fcn.0052142e
add esp, 4
lea ecx, [ebp - 0xa94]
mov dword [ebp - 0xa5c], esi
mov dword [ebp - 0xa60], ebx
mov byte [ebp - 0xa70], 0
call fcn.00448990
mov eax, 1
jmp 0x5268e3
push eax
call dword [sym.imp.USER32.dll_GetDC]
push 0x59c950
mov ecx, 0x59c96c
mov dword [0x59c678], eax
call fcn.00523010
add esp, 4
cmp eax, ebx
je 0x52641f
inc dword [eax + 4]
mov ecx, dword [0x59c9a0]
mov dword [0x59c9a0], eax
cmp ecx, ebx
je 0x52643b
dec dword [ecx + 4]
jne 0x52643b
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, dword [0x59c9a0]
push eax
lea ecx, [ebp - 0xa94]
push ecx
call fcn.00411150
mov ebx, eax
mov edx, dword [ebx]
mov eax, dword [edx + 4]
add esp, 8
mov ecx, ebx
call eax
mov edx, dword [0x59c620]
lea ecx, [ebp - 0xcd4]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0xcc8]
mov ecx, dword [ebp - 0xccc]
push eax
push ecx
call fcn.00522a40
add esp, 8
cmp byte [0x59c648], 0
jne 0x52655d
lea edx, [ebp - 0x1550]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [0x59c620]
lea eax, [ebp - 0x1550]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov edx, dword [ebp - 0x1550]
mov eax, dword [ebp - 0x154c]
mov ecx, dword [0x59c9a0]
mov dword [ebp - 0x1508], eax
mov dword [ebp - 0x151c], edx
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
test eax, eax
je 0x526512
mov ecx, dword [0x59c9a0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
cmp eax, 1
je 0x526512
mov ecx, dword [0x59c9a0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
cmp eax, 2
je 0x526512
mov ecx, dword [0x59c9a0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
call eax
cmp eax, 3
jne 0x52652b
lea ecx, [ebp - 0x1508]
push ecx
mov ecx, dword [0x59c9a0]
lea edx, [ebp - 0x151c]
push edx
call fcn.0045db20
mov ecx, dword [ebp - 0x1508]
mov eax, dword [ebx]
mov edx, dword [ebp - 0x151c]
mov eax, dword [eax + 0x1c]
push ecx
push edx
mov ecx, ebx
call eax
lea ecx, [ebp - 0x1508]
push ecx
lea edx, [ebp - 0x151c]
push edx
push 0x585b90
call fcn.00524240
add esp, 0xc
mov eax, dword [0x59c620]
push 0x59c624
mov dword [0x59c624], 0x10
mov dword [0x59c62c], eax
mov dword [0x59c628], 2
call dword [sym.imp.USER32.dll_TrackMouseEvent]
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push str.RegisterTouchWindow
push esi
call edi
push str.GetTouchInputInfo
push esi
mov dword [0x59c888], eax
call edi
push 0x564c38
push esi
mov dword [0x59c88c], eax
call edi
mov ecx, dword [0x59c888]
mov dword [0x59c890], eax
test ecx, ecx
je 0x5265e2
cmp dword [0x59c88c], 0
je 0x5265e2
test eax, eax
je 0x5265e2
mov edx, dword [0x59c620]
push 3
push edx
call ecx
movzx ecx, byte [0x59c880]
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
push ecx
mov ecx, ebx
call edx
push 0
push 0x585ba8
call fcn.0040bf40
add esp, 8
test eax, eax
je 0x52663b
mov esi, dword [eax]
mov edi, dword [eax + 4]
jmp 0x526610
cmp esi, edi
je 0x52663b
mov eax, dword [esi]
cmp dword [eax + 0x20], 0
jne 0x526622
call dword [0x5451b4]
movzx ecx, byte [0x59c880]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
mov edx, dword [edx + 4]
push ecx
mov ecx, eax
call edx
add esi, 4
jmp 0x526610
movzx ecx, byte [0x59c880]
mov eax, dword [ebx]
mov edx, dword [eax + 0x44]
push ecx
mov ecx, ebx
call edx
push 0
push 0x585ba0
call fcn.0040bf40
add esp, 8
test eax, eax
je 0x52668f
mov esi, dword [eax]
mov edi, dword [eax + 4]
cmp esi, edi
je 0x52668f
mov eax, dword [esi]
cmp dword [eax + 0x20], 0
jne 0x526676
call dword [0x5451b4]
movzx ecx, byte [0x59c880]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
mov edx, dword [edx + 4]
push ecx
mov ecx, eax
call edx
add esi, 4
jmp 0x526664
call fcn.004f3200
mov dword [ebp - 0x152c], eax
xor eax, eax
mov dword [ebp - 0x1528], edx
mov dword [ebp - 0x1548], eax
mov dword [ebp - 0x1544], eax
mov dword [ebp - 0x1540], eax
mov dword [ebp - 0x153c], eax
mov dword [ebp - 0x1538], eax
mov dword [ebp - 0x1534], eax
mov dword [ebp - 0x1530], eax
cmp dword [ebp - 0x1544], 0x12
je 0x5267dc
cmp byte [0x59c880], 0
lea eax, [ebp - 0x1548]
jne 0x526715
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jle 0x5266cc
lea ecx, [ebp - 0x1548]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x1548]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x5266cc
push 1
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x526744
lea ecx, [ebp - 0x1548]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [ebp - 0x1548]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x5266cc
call fcn.004f3200
mov edi, eax
sub eax, dword [ebp - 0x152c]
mov ebx, edx
mov ecx, ebx
sbb ecx, dword [ebp - 0x1528]
mov dword [ebp - 0x1560], eax
mov dword [ebp - 0x155c], ecx
fild qword [ebp - 0x1560]
push ecx
mov dword [ebp - 0x152c], edi
mov dword [ebp - 0x1528], ebx
fmul qword [0x564c30]
fstp dword [ebp - 0x1520]
fld dword [ebp - 0x1520]
fstp dword [esp]
call fcn.00525610
add esp, 4
cmp dword [0x59c914], 0
jle 0x5266cc
call fcn.004f3200
mov ecx, eax
mov esi, edx
mov eax, 0xf4240
sub ecx, edi
cdq
sbb esi, ebx
idiv dword [0x59c914]
cdq
cmp esi, edx
jg 0x5266cc
jl 0x5267d0
cmp ecx, eax
jae 0x5266cc
push 1
call fcn.004f2a60
add esp, 4
jmp 0x5267a4
cmp dword [ebp - 0xa9c], 0x10
mov edx, dword [ebp - 0x1540]
mov dword [ebp - 0x1524], edx
jb 0x526800
mov eax, dword [ebp - 0xab0]
push eax
call fcn.0052142e
add esp, 4
xor edi, edi
mov esi, 0xf
mov dword [ebp - 0xa9c], esi
mov dword [ebp - 0xaa0], edi
mov byte [ebp - 0xab0], 0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x1518], edi
je 0x526878
lea ecx, [ebp - 0x1518]
call dword [0x5451bc]
mov ebx, dword [ebp - 0x1514]
mov edi, dword [ebp - 0x1518]
mov edi, edi
cmp edi, ebx
je 0x526867
cmp dword [edi + 0x14], 0x10
jb 0x526855
mov ecx, dword [edi]
push ecx
call fcn.0052142e
add esp, 4
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
jmp 0x526840
mov edx, dword [ebp - 0x1518]
push edx
call fcn.0052142e
add esp, 4
xor edi, edi
cmp dword [ebp - 0xa5c], 0x10
mov dword [ebp - 0x1518], edi
mov dword [ebp - 0x1514], edi
mov dword [ebp - 0x1510], edi
mov byte [ebp - 4], 0
jb 0x5268a6
mov eax, dword [ebp - 0xa70]
push eax
call fcn.0052142e
add esp, 4
lea ecx, [ebp - 0xa94]
mov dword [ebp - 0xa5c], esi
mov dword [ebp - 0xa60], edi
mov byte [ebp - 0xa70], 0
call fcn.00448990
mov dword [ebp - 4], 0xffffffff
call fcn.00523910
mov edx, dword [ebp - 0x1558]
push edx
call dword [sym.imp.WINMM.dll_timeEndPeriod]
mov eax, dword [ebp - 0x1524]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00521458
mov esp, ebp
pop ebp
ret