Function at 0x42f300
Capabilities:
Get common file path
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x404]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push str.pgo.dat
push 0x497c30
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x204]
push str._s_s_s
push edx
call fcn.00409550
lea eax, [ebp - 0x204]
push 0x497df4
push eax
call fcn.004644f9
mov esi, eax
xor edi, edi
add esp, 0x1c
cmp esi, edi
je 0x42f4e7
push 0x54
lea ecx, [ebp - 0x458]
push edi
push ecx
call fcn.004639d0
push esi
mov ebx, 1
push ebx
lea edx, [ebp - 0x458]
push 0x54
push edx
call fcn.0046490d
push esi
call fcn.004643ac
mov eax, dword [ebp - 0x458]
mov word [0x4b571c], ax
shr eax, 0x10
mov word [0x4a86a8], ax
mov eax, dword [ebp - 0x454]
mov dword [0x4a86ac], eax
mov eax, 0x51eb851f
imul dword [ebp - 0x450]
sar edx, 5
mov eax, dword [ebp - 0x440]
mov ecx, 0x15
lea esi, [ebp - 0x458]
mov edi, 0x4b28a8
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x444]
imul ecx, ecx, 0x64
mov dword [0x4b2c6c], ecx
mov ecx, dword [ebp - 0x43c]
mov dword [0x4b2c74], ecx
mov ecx, dword [ebp - 0x428]
mov dword [0x4b2c58], ecx
mov ecx, dword [ebp - 0x434]
mov dword [0x4b2c5c], edx
mov edx, dword [ebp - 0x430]
mov dword [0x4b2c70], eax
mov eax, dword [ebp - 0x42c]
mov dword [0x4b2c7c], ecx
mov ecx, dword [ebp - 0x44c]
mov dword [0x4b2c60], edx
mov edx, dword [ebp - 0x424]
mov dword [0x4b2c64], eax
mov eax, dword [ebp - 0x438]
mov dword [0x4a8578], ecx
movzx ecx, byte [ebp - 0x414]
mov dword [0x4b2c54], edx
mov edx, dword [ebp - 0x420]
mov dword [0x4b2c78], eax
mov eax, dword [ebp - 0x41c]
mov dword [0x4b2c80], edx
mov edx, dword [ebp - 0x448]
mov dword [0x4b2c84], eax
mov eax, dword [ebp - 0x418]
mov byte [0x4b571e], cl
movzx ecx, byte [ebp - 0x40d]
mov dword [0x4a857c], edx
mov edx, dword [0x4b28ed]
mov dword [0x4b56b0], eax
mov ax, word [0x4b28f1]
mov byte [0x4a8699], cl
movzx ecx, byte [ebp - 0x407]
mov dword [str.111111], edx
mov edx, dword [ebp - 0x40c]
mov word [0x4a86b4], ax
mov al, byte [ebp - 0x408]
add esp, 0x20
mov dword [0x4b57e4], edx
mov byte [0x4a880c], al
mov byte [0x4a869a], cl
xor edi, edi
jmp 0x42f63b
mov dx, word [0x4b571c]
mov ax, word [0x4a86a8]
mov ecx, dword [0x4a86ac]
mov word [0x4b28a8], dx
mov edx, dword [0x4b2c6c]
mov dword [0x4b28b0], edx
mov edx, dword [0x4b2c74]
mov word [0x4b28aa], ax
mov eax, dword [0x4b2c5c]
mov dword [0x4b28c4], edx
mov edx, dword [0x4b2c58]
mov dword [0x4b28bc], eax
mov eax, dword [0x4b2c60]
mov dword [0x4b28ac], ecx
mov ecx, dword [0x4b2c70]
mov dword [0x4b28d8], edx
mov edx, dword [0x4b2c7c]
mov dword [0x4b28d0], eax
mov eax, dword [0x4b2c54]
mov dword [0x4b28c0], ecx
mov ecx, dword [0x4b2c64]
mov dword [0x4b28cc], edx
mov edx, dword [0x4a8578]
mov dword [0x4b28dc], eax
mov eax, dword [0x4b2c80]
mov dword [0x4b28d4], ecx
mov ecx, dword [0x4b2c78]
mov dword [0x4b28b4], edx
movzx edx, byte [0x4b571e]
mov dword [0x4b28e0], eax
mov eax, dword [0x4a857c]
mov dword [0x4b28c8], ecx
mov ecx, dword [0x4b2c84]
mov dword [0x4b28b8], eax
mov eax, dword [str.111111]
mov dword [0x4b28e4], ecx
mov ecx, dword [0x4b56b0]
mov byte [0x4b28ec], dl
movzx edx, byte [0x4a8699]
mov dword [0x4b28ed], eax
mov eax, dword [0x4b57e4]
mov dword [0x4b28e8], ecx
mov cx, word [0x4a86b4]
mov byte [0x4b28f3], dl
movzx edx, byte [0x4a869a]
mov dword [0x4b28f4], eax
mov word [0x4b28f1], cx
mov cl, byte [0x4a880c]
lea eax, [ebp - 0x204]
push 0x49af58
push eax
mov byte [0x4b28f8], cl
mov byte [0x4b28f9], dl
call fcn.004644f9
mov esi, eax
push esi
mov ebx, 1
push ebx
push 0x54
push 0x4b28a8
call fcn.00464d80
push esi
call fcn.004643ac
add esp, 0x1c
mov ecx, dword [0x4b6024]
mov dl, byte [0x4a869a]
mov byte [ecx + 0xf4], dl
mov eax, dword [0x4b6024]
mov dword [eax + 0xa4], edi
mov cl, byte [0x4a8699]
mov edx, dword [0x4b5ae4]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a8578]
cmp eax, edi
jle 0x42f6ca
cmp dword [0x4b2c5c], eax
jge 0x42f690
cmp dword [0x4b56b0], edi
jg 0x42f690
mov eax, dword [0x4b6024]
cmp dword [eax + 0xa4], edi
je 0x42f6ca
mov ecx, dword [0x4b5978]
push 0x476
push ecx
mov byte [0x4b2c4d], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4b5978]
push edi
push 0x320
push 0x476
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4b2c4e], 0
jmp 0x42f701
mov eax, dword [0x4b5978]
push 0x48d
push eax
mov byte [0x4b2c4e], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4b5978]
push edi
push 0x320
push 0x48d
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4b2c4d], 0
mov eax, dword [0x4b57e4]
cmp eax, edi
jle 0x42f70f
cmp eax, 5
jl 0x42f715
mov dword [0x4b57e4], edi
mov edx, dword [0x4b6248]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4b624c]
mov dword [eax + 0xa4], ebx
mov ecx, dword [0x4b6250]
mov dword [ecx + 0xa4], ebx
mov edx, dword [0x4b6254]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4b6258]
mov dword [eax + 0xa4], ebx
cmp word [0x4b571c], di
je 0x42f887
mov ecx, dword [0x4b2910]
mov edx, dword [0x4b2914]
mov eax, dword [0x4b2918]
mov esi, dword [0x4b2934]
mov dword [0x4a8684], ecx
mov ecx, dword [0x4b2920]
mov dword [0x4a8688], edx
mov edx, dword [0x4b2924]
mov dword [0x4a8690], ecx
mov cx, word [0x4b2a14]
mov dword [0x4a868c], eax
mov eax, dword [0x4b2930]
mov dword [0x4a8694], edx
mov edx, dword [0x4b2a18]
mov word [0x4a86a8], cx
mov dword [0x4a8578], eax
mov dword [0x4a857c], esi
xor ecx, ecx
cmp edx, dword [ecx*4 + 0x4b2a20]
je 0x42f869
add ecx, ebx
cmp ecx, 0x32
jl 0x42f7c2
mov dword [0x4a86ac], edx
mov ecx, dword [0x4b2c04]
cmp ecx, edi
jl 0x42f7eb
cmp ecx, 0x64
jle 0x42f7f3
mov ecx, ebx
mov dword [0x4b2c04], ecx
mov dword [0x4b2c98], edi
cmp ecx, edi
jle 0x42f875
call fcn.00463f1c
mov esi, dword [0x4a857c]
mov dword [ebp - 0x45c], eax
fild dword [ebp - 0x45c]
mov dword [0x4b2c9c], edi
fnstcw word [ebp - 0x45a]
movzx eax, word [ebp - 0x45a]
fmul qword [0x49af50]
or eax, 0xc00
mov dword [ebp - 0x460], eax
mov eax, dword [0x4a8578]
fmul qword [0x497ab8]
fldcw word [ebp - 0x460]
fistp qword [ebp - 0x464]
mov edx, dword [ebp - 0x464]
add edx, 0xc8
mov dword [0x4a8224], edx
fldcw word [ebp - 0x45a]
jmp 0x42f899
inc ecx
mov dword [0x4a86ac], ecx
jmp 0x42f7dc
mov dword [0x4a8224], 0xffffffff
mov dword [0x4b2c9c], edi
jmp 0x42f899
mov eax, dword [0x4a8578]
mov esi, dword [0x4a857c]
mov word [0x4b571c], bx
mov edi, 2
lea ebx, [edi + 4]
lea edx, [edi + 6]
cmp eax, 0x258
jg 0x42f91f
je 0x42f913
cmp eax, 0x12c
jg 0x42f8ec
je 0x42f8e4
mov ecx, eax
sub ecx, 0x64
je 0x42f8d5
sub ecx, 0x64
jne 0x42f964
mov dword [0x4b55b0], 1
jmp 0x42f964
mov dword [0x4b55b0], 0
jmp 0x42f964
mov dword [0x4b55b0], edi
jmp 0x42f964
mov ecx, eax
sub ecx, 0x190
je 0x42f907
sub ecx, 0x64
jne 0x42f964
mov dword [0x4b55b0], 4
jmp 0x42f964
mov dword [0x4b55b0], 3
jmp 0x42f964
mov dword [0x4b55b0], 5
jmp 0x42f964
cmp eax, 0x384
jg 0x42f953
je 0x42f94b
mov ecx, eax
sub ecx, 0x2bc
je 0x42f943
sub ecx, 0x64
jne 0x42f964
mov dword [0x4b55b0], 7
jmp 0x42f964
mov dword [0x4b55b0], ebx
jmp 0x42f964
mov dword [0x4b55b0], edx
jmp 0x42f964
cmp eax, 0x3e8
jne 0x42f964
mov dword [0x4b55b0], 9
cmp esi, 0x258
jg 0x42f9e1
je 0x42f9d5
cmp esi, 0x12c
jg 0x42f9ae
je 0x42f9a6
mov ecx, esi
sub ecx, 0x64
je 0x42f997
sub ecx, 0x64
jne 0x42fa28
mov dword [0x4a8580], 1
jmp 0x42fa28
mov dword [0x4a8580], 0
jmp 0x42fa28
mov dword [0x4a8580], edi
jmp 0x42fa28
mov ecx, esi
sub ecx, 0x190
je 0x42f9c9
sub ecx, 0x64
jne 0x42fa28
mov dword [0x4a8580], 4
jmp 0x42fa28
mov dword [0x4a8580], 3
jmp 0x42fa28
mov dword [0x4a8580], 5
jmp 0x42fa28
cmp esi, 0x384
jg 0x42fa16
je 0x42fa0e
mov ecx, esi
sub ecx, 0x2bc
je 0x42fa06
sub ecx, 0x64
jne 0x42fa28
mov dword [0x4a8580], 7
jmp 0x42fa28
mov dword [0x4a8580], ebx
jmp 0x42fa28
mov dword [0x4a8580], edx
jmp 0x42fa28
cmp esi, 0x3e8
jne 0x42fa28
mov dword [0x4a8580], 9
mov ebx, 0xea60
cmp eax, 0x258
jg 0x42faa7
je 0x42fa9f
cmp eax, 0x12c
jg 0x42fa7b
je 0x42fa6d
sub eax, 0x64
je 0x42fa5c
sub eax, 0x64
jne 0x42faf1
mov eax, dword [0x4b29fc]
mov dword [0x4a85bc], eax
jmp 0x42faf1
mov ecx, dword [0x4b29f8]
mov dword [0x4a85bc], ecx
jmp 0x42faf1
mov edx, dword [0x4b2a0c]
mov dword [0x4a85bc], edx
jmp 0x42faf1
sub eax, 0x190
je 0x42fa93
sub eax, 0x64
jne 0x42faf1
mov dword [0x4a85bc], 0xc350
jmp 0x42faf1
mov dword [0x4a85bc], 0x9c40
jmp 0x42faf1
mov dword [0x4a85bc], ebx
jmp 0x42faf1
cmp eax, 0x384
jg 0x42fae0
je 0x42fad4
sub eax, 0x2bc
je 0x42fac8
sub eax, 0x64
jne 0x42faf1
mov dword [0x4a85bc], 0x13880
jmp 0x42faf1
mov dword [0x4a85bc], 0x11170
jmp 0x42faf1
mov dword [0x4a85bc], 0x15f90
jmp 0x42faf1
cmp eax, 0x3e8
jne 0x42faf1
mov dword [0x4a85bc], 0x186a0
mov edi, dword [0x4a86ac]
mov eax, 0x66666667
imul dword [0x4a85bc]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x4b2858], eax
mov dword [0x4b285c], eax
mov dword [0x4b2860], eax
mov dword [0x4b2864], eax
mov dword [0x4b2868], eax
mov dword [0x4b286c], eax
mov dword [0x4b2870], eax
mov dword [0x4b2874], eax
mov dword [0x4b2878], eax
mov dword [0x4b287c], eax
mov dword [0x4b5644], 0
mov eax, edi
cmp edi, 0x32
jg 0x42fb56
mov eax, dword [edi*4 + 0x4b2a1c]
movzx esi, word [0x4a86a8]
imul esi, esi, 0x5be
add eax, esi
fld dword [eax*4 + 0x4b554c]
fmul qword [0x497c58]
fadd qword [0x481fe0]
call fcn.00463ab0
mov dword [0x4b2c8c], eax
mov ecx, edi
cmp edi, 0x32
jg 0x42fb90
mov ecx, dword [edi*4 + 0x4b2a1c]
add esi, ecx
mov ecx, dword [esi*4 + 0x4b5434]
imul ecx, ecx, 0x2710
cmp ecx, eax
jge 0x42fbad
call fcn.00409bd0
mov eax, dword [0x4b2c8c]
mov dword [0x4b59bc], eax
mov eax, dword [0x4b2984]
test eax, eax
jle 0x42fbc0
cmp eax, 9
jle 0x42fbca
mov dword [0x4b2984], 4
call fcn.0040fd80
call fcn.0040bc60
mov edx, dword [0x4b2c6c]
push edx
call fcn.0040bb70
add esp, 4
call fcn.0040fef0
mov eax, dword [0x4b29f8]
mov edx, 0x7530
mov ecx, 0x4e20
cmp eax, edx
jg 0x42fd18
je 0x42fcd8
cmp eax, 0x2710
je 0x42fc7a
cmp eax, ecx
jne 0x42fd1c
mov eax, dword [0x4a857c]
cmp eax, 0x258
jg 0x42fc4a
je 0x42fd8a
cmp eax, 0x12c
jle 0x42fd5e
sub eax, 0x190
je 0x42fd96
sub eax, 0x64
je 0x42fd8a
jmp 0x42fddc
cmp eax, 0x384
jg 0x42fc70
je 0x42fd8a
sub eax, 0x2bc
je 0x42fd8a
sub eax, 0x64
je 0x42fd8a
jmp 0x42fddc
cmp eax, 0x3e8
jmp 0x42fd88
mov eax, dword [0x4a857c]
cmp eax, 0x258
jg 0x42fca4
je 0x42fcc9
cmp eax, 0x12c
jle 0x42fd5e
sub eax, 0x190
je 0x42fcc9
sub eax, 0x64
je 0x42fcc9
jmp 0x42fddc
cmp eax, 0x384
jg 0x42fcbe
je 0x42fcc9
sub eax, 0x2bc
je 0x42fcc9
sub eax, 0x64
je 0x42fcc9
jmp 0x42fddc
cmp eax, 0x3e8
jne 0x42fddc
mov dword [0x4b57ac], 0x9c40
jmp 0x42fddc
mov eax, dword [0x4a857c]
cmp eax, 0x258
jle 0x42fd55
cmp eax, 0x384
jg 0x42fcfe
je 0x42fd09
sub eax, 0x2bc
je 0x42fd09
sub eax, 0x64
je 0x42fd09
jmp 0x42fddc
cmp eax, 0x3e8
jne 0x42fddc
mov dword [0x4b57ac], 0x1d4c0
jmp 0x42fddc
cmp eax, ebx
je 0x42fd49
mov eax, dword [0x4a857c]
cmp eax, 0x258
jle 0x42fd55
cmp eax, 0x384
jle 0x42fda5
cmp eax, 0x3e8
jne 0x42fddc
mov dword [0x4b57ac], 0x493e0
jmp 0x42fddc
mov eax, dword [0x4a857c]
cmp eax, 0x258
jg 0x42fd9e
je 0x42fd09
cmp eax, 0x12c
jg 0x42fd7e
je 0x42fcc9
sub eax, 0x64
je 0x42fd76
sub eax, 0x64
jne 0x42fddc
mov dword [0x4b57ac], edx
jmp 0x42fddc
mov dword [0x4b57ac], ecx
jmp 0x42fddc
sub eax, 0x190
je 0x42fd96
sub eax, 0x64
jne 0x42fddc
mov dword [0x4b57ac], 0x15f90
jmp 0x42fddc
mov dword [0x4b57ac], ebx
jmp 0x42fddc
cmp eax, 0x384
jg 0x42fdcb
je 0x42fdd2
sub eax, 0x2bc
je 0x42fdbf
sub eax, 0x64
jne 0x42fddc
mov dword [0x4b57ac], 0x2bf20
jmp 0x42fddc
mov dword [0x4b57ac], 0x249f0
jmp 0x42fddc
cmp eax, 0x3e8
jne 0x42fddc
mov dword [0x4b57ac], 0x35b60
mov eax, dword [0x4a85bc]
movzx edx, byte [0x4a86a8]
mov dword [0x4b57a8], eax
mov byte [0x4b289e], dl
mov cl, byte [0x4a86ac]
mov eax, 0x51eb851f
imul dword [0x4b2c8c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [0x4b28a0], ax
mov eax, 0x51eb851f
imul dword [0x4b2c68]
sar edx, 5
mov byte [0x4b289f], cl
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [0x4b57e4]
mov byte [0x4b289a], 0
mov word [0x4b289c], cx
mov byte [0x4b28a2], dl
call fcn.00424320
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret