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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x468
mov eax, dword [0x4a4cf0]
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.gm.dat
push 0x48bed8
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x204]
push str._s_s_s
push edx
call fcn.00409630
lea eax, [ebp - 0x204]
push 0x48c09c
push eax
call fcn.0045cbc7
mov esi, eax
xor edi, edi
add esp, 0x1c
cmp esi, edi
je 0x42b517
push 0x58
lea ecx, [ebp - 0x45c]
push edi
push ecx
call fcn.0045c080
push esi
mov ebx, 1
push ebx
lea edx, [ebp - 0x45c]
push 0x58
push edx
call fcn.0045cfbf
push esi
call fcn.0045ca7a
mov eax, dword [ebp - 0x45c]
mov word [0x4a9370], ax
shr eax, 0x10
mov word [0x4a3c28], ax
mov eax, dword [ebp - 0x458]
mov dword [0x4a3c2c], eax
mov eax, 0x51eb851f
imul dword [ebp - 0x454]
sar edx, 5
mov eax, dword [ebp - 0x444]
mov ecx, 0x16
lea esi, [ebp - 0x45c]
mov edi, 0x4a6390
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x448]
imul ecx, ecx, 0x64
mov dword [0x4a675c], ecx
mov ecx, dword [ebp - 0x440]
mov dword [0x4a6764], ecx
mov ecx, dword [ebp - 0x42c]
mov dword [0x4a6748], ecx
mov ecx, dword [ebp - 0x438]
mov dword [0x4a674c], edx
mov edx, dword [ebp - 0x434]
mov dword [0x4a6760], eax
mov eax, dword [ebp - 0x430]
mov dword [0x4a676c], ecx
mov ecx, dword [ebp - 0x450]
mov dword [0x4a6750], edx
mov edx, dword [ebp - 0x428]
mov dword [0x4a6754], eax
mov eax, dword [ebp - 0x43c]
mov dword [0x4a3b20], ecx
movzx ecx, byte [ebp - 0x418]
mov dword [0x4a6744], edx
mov edx, dword [ebp - 0x424]
mov dword [0x4a6768], eax
mov eax, dword [ebp - 0x420]
mov dword [0x4a6770], edx
mov edx, dword [ebp - 0x44c]
mov dword [0x4a6774], eax
mov eax, dword [ebp - 0x41c]
mov byte [0x4a9322], cl
movzx ecx, byte [ebp - 0x411]
mov dword [0x4a3b24], edx
mov edx, dword [0x4a63d5]
mov dword [0x4a930c], eax
mov ax, word [0x4a63d9]
mov byte [0x4a3bdb], cl
movzx ecx, byte [ebp - 0x408]
mov dword [str.111111], edx
mov edx, dword [ebp - 0x410]
mov word [0x4a3c34], ax
mov eax, dword [ebp - 0x40c]
add esp, 0x20
mov dword [0x4a67b0], edx
mov dword [0x49c45c], eax
mov byte [0x4a3c2a], cl
xor edi, edi
jmp 0x42b66b
mov dx, word [0x4a9370]
mov ax, word [0x4a3c28]
mov ecx, dword [0x4a3c2c]
mov word [0x4a6390], dx
mov edx, dword [0x4a675c]
mov dword [0x4a6398], edx
mov edx, dword [0x4a6764]
mov word [0x4a6392], ax
mov eax, dword [0x4a674c]
mov dword [0x4a63ac], edx
mov edx, dword [0x4a6748]
mov dword [0x4a63a4], eax
mov eax, dword [0x4a6750]
mov dword [0x4a6394], ecx
mov ecx, dword [0x4a6760]
mov dword [0x4a63c0], edx
mov edx, dword [0x4a676c]
mov dword [0x4a63b8], eax
mov eax, dword [0x4a6744]
mov dword [0x4a63a8], ecx
mov ecx, dword [0x4a6754]
mov dword [0x4a63b4], edx
mov edx, dword [0x4a3b20]
mov dword [0x4a63c4], eax
mov eax, dword [0x4a6770]
mov dword [0x4a63bc], ecx
mov ecx, dword [0x4a6768]
mov dword [0x4a639c], edx
movzx edx, byte [0x4a9322]
mov dword [0x4a63c8], eax
mov eax, dword [0x4a3b24]
mov dword [0x4a63b0], ecx
mov ecx, dword [0x4a6774]
mov dword [0x4a63a0], eax
mov eax, dword [str.111111]
mov dword [0x4a63cc], ecx
mov ecx, dword [0x4a930c]
mov byte [0x4a63d4], dl
movzx edx, byte [0x4a3bdb]
mov dword [0x4a63d5], eax
mov eax, dword [0x4a67b0]
mov dword [0x4a63d0], ecx
mov cx, word [0x4a3c34]
mov byte [0x4a63db], dl
movzx edx, byte [0x4a3c2a]
mov dword [0x4a63dc], eax
mov word [0x4a63d9], cx
mov ecx, dword [0x49c45c]
lea eax, [ebp - 0x204]
push 0x48eb78
push eax
mov dword [0x4a63e0], ecx
mov byte [0x4a63e4], dl
call fcn.0045cbc7
mov esi, eax
push esi
mov ebx, 1
push ebx
push 0x58
push 0x4a6390
call fcn.0045d432
push esi
call fcn.0045ca7a
add esp, 0x1c
mov ecx, dword [0x4a9a2c]
mov dl, byte [0x4a3c2a]
mov byte [ecx + 0xf4], dl
mov eax, dword [0x4a9a2c]
mov dword [eax + 0xa4], edi
mov cl, byte [0x4a3bdb]
mov edx, dword [0x4a950c]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a3b20]
cmp eax, edi
jle 0x42b6fa
cmp dword [0x4a674c], eax
jge 0x42b6c0
cmp dword [0x4a930c], edi
jg 0x42b6c0
mov eax, dword [0x4a9a2c]
cmp dword [eax + 0xa4], edi
je 0x42b6fa
mov ecx, dword [0x4a6948]
push 0x476
push ecx
mov byte [0x4a673f], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4a6948]
push edi
push 0x320
push 0x476
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4a6780], 0
jmp 0x42b731
mov eax, dword [0x4a6948]
push 0x48d
push eax
mov byte [0x4a6780], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4a6948]
push edi
push 0x320
push 0x48d
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4a673f], 0
mov eax, dword [0x4a67b0]
cmp eax, edi
jle 0x42b73f
cmp eax, 5
jl 0x42b745
mov dword [0x4a67b0], edi
mov edx, dword [0x4a9c48]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4a9c4c]
mov dword [eax + 0xa4], ebx
mov ecx, dword [0x4a9c50]
mov dword [ecx + 0xa4], ebx
mov edx, dword [0x4a9c54]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4a9c58]
mov dword [eax + 0xa4], ebx
cmp word [0x4a9370], di
je 0x42b8b7
mov ecx, dword [0x4a6400]
mov edx, dword [0x4a6404]
mov eax, dword [0x4a6408]
mov esi, dword [0x4a6424]
mov dword [0x4a3c08], ecx
mov ecx, dword [0x4a6410]
mov dword [0x4a3c0c], edx
mov edx, dword [0x4a6414]
mov dword [0x4a3c14], ecx
mov cx, word [0x4a6504]
mov dword [0x4a3c10], eax
mov eax, dword [0x4a6420]
mov dword [0x4a3c18], edx
mov edx, dword [0x4a6508]
mov word [0x4a3c28], cx
mov dword [0x4a3b20], eax
mov dword [0x4a3b24], esi
xor ecx, ecx
cmp edx, dword [ecx*4 + 0x4a6510]
je 0x42b899
add ecx, ebx
cmp ecx, 0x32
jl 0x42b7f2
mov dword [0x4a3c2c], edx
mov ecx, dword [0x4a66f4]
cmp ecx, edi
jl 0x42b81b
cmp ecx, 0x64
jle 0x42b823
mov ecx, ebx
mov dword [0x4a66f4], ecx
mov dword [0x4a678c], edi
cmp ecx, edi
jle 0x42b8a5
call fcn.0045c5cc
mov esi, dword [0x4a3b24]
mov dword [ebp - 0x460], eax
fild dword [ebp - 0x460]
mov dword [0x4a6790], edi
fnstcw word [ebp - 0x45e]
movzx eax, word [ebp - 0x45e]
fmul qword [0x48eb70]
or eax, 0xc00
mov dword [ebp - 0x464], eax
mov eax, dword [0x4a3b20]
fmul qword [0x48bd20]
fldcw word [ebp - 0x464]
fistp qword [ebp - 0x468]
mov edx, dword [ebp - 0x468]
add edx, 0xc8
mov dword [0x49c2f4], edx
fldcw word [ebp - 0x45e]
jmp 0x42b8c9
inc ecx
mov dword [0x4a3c2c], ecx
jmp 0x42b80c
mov dword [0x49c2f4], 0xffffffff
mov dword [0x4a6790], edi
jmp 0x42b8c9
mov eax, dword [0x4a3b20]
mov esi, dword [0x4a3b24]
mov word [0x4a9370], bx
mov edi, 2
lea ebx, [edi + 4]
lea edx, [edi + 6]
cmp eax, 0x258
jg 0x42b94f
je 0x42b943
cmp eax, 0x12c
jg 0x42b91c
je 0x42b914
mov ecx, eax
sub ecx, 0x64
je 0x42b905
sub ecx, 0x64
jne 0x42b994
mov dword [0x4a9208], 1
jmp 0x42b994
mov dword [0x4a9208], 0
jmp 0x42b994
mov dword [0x4a9208], edi
jmp 0x42b994
mov ecx, eax
sub ecx, 0x190
je 0x42b937
sub ecx, 0x64
jne 0x42b994
mov dword [0x4a9208], 4
jmp 0x42b994
mov dword [0x4a9208], 3
jmp 0x42b994
mov dword [0x4a9208], 5
jmp 0x42b994
cmp eax, 0x384
jg 0x42b983
je 0x42b97b
mov ecx, eax
sub ecx, 0x2bc
je 0x42b973
sub ecx, 0x64
jne 0x42b994
mov dword [0x4a9208], 7
jmp 0x42b994
mov dword [0x4a9208], ebx
jmp 0x42b994
mov dword [0x4a9208], edx
jmp 0x42b994
cmp eax, 0x3e8
jne 0x42b994
mov dword [0x4a9208], 9
cmp esi, 0x258
jg 0x42ba11
je 0x42ba05
cmp esi, 0x12c
jg 0x42b9de
je 0x42b9d6
mov ecx, esi
sub ecx, 0x64
je 0x42b9c7
sub ecx, 0x64
jne 0x42ba58
mov dword [0x4a3b28], 1
jmp 0x42ba58
mov dword [0x4a3b28], 0
jmp 0x42ba58
mov dword [0x4a3b28], edi
jmp 0x42ba58
mov ecx, esi
sub ecx, 0x190
je 0x42b9f9
sub ecx, 0x64
jne 0x42ba58
mov dword [0x4a3b28], 4
jmp 0x42ba58
mov dword [0x4a3b28], 3
jmp 0x42ba58
mov dword [0x4a3b28], 5
jmp 0x42ba58
cmp esi, 0x384
jg 0x42ba46
je 0x42ba3e
mov ecx, esi
sub ecx, 0x2bc
je 0x42ba36
sub ecx, 0x64
jne 0x42ba58
mov dword [0x4a3b28], 7
jmp 0x42ba58
mov dword [0x4a3b28], ebx
jmp 0x42ba58
mov dword [0x4a3b28], edx
jmp 0x42ba58
cmp esi, 0x3e8
jne 0x42ba58
mov dword [0x4a3b28], 9
mov ebx, 0xea60
cmp eax, 0x258
jg 0x42bad7
je 0x42bacf
cmp eax, 0x12c
jg 0x42baab
je 0x42ba9d
sub eax, 0x64
je 0x42ba8c
sub eax, 0x64
jne 0x42bb21
mov eax, dword [0x4a64ec]
mov dword [0x4a3b64], eax
jmp 0x42bb21
mov ecx, dword [0x4a64e8]
mov dword [0x4a3b64], ecx
jmp 0x42bb21
mov edx, dword [0x4a64fc]
mov dword [0x4a3b64], edx
jmp 0x42bb21
sub eax, 0x190
je 0x42bac3
sub eax, 0x64
jne 0x42bb21
mov dword [0x4a3b64], 0xc350
jmp 0x42bb21
mov dword [0x4a3b64], 0x9c40
jmp 0x42bb21
mov dword [0x4a3b64], ebx
jmp 0x42bb21
cmp eax, 0x384
jg 0x42bb10
je 0x42bb04
sub eax, 0x2bc
je 0x42baf8
sub eax, 0x64
jne 0x42bb21
mov dword [0x4a3b64], 0x13880
jmp 0x42bb21
mov dword [0x4a3b64], 0x11170
jmp 0x42bb21
mov dword [0x4a3b64], 0x15f90
jmp 0x42bb21
cmp eax, 0x3e8
jne 0x42bb21
mov dword [0x4a3b64], 0x186a0
mov edi, dword [0x4a3c2c]
mov eax, 0x66666667
imul dword [0x4a3b64]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x4a6340], eax
mov dword [0x4a6344], eax
mov dword [0x4a6348], eax
mov dword [0x4a634c], eax
mov dword [0x4a6350], eax
mov dword [0x4a6354], eax
mov dword [0x4a6358], eax
mov dword [0x4a635c], eax
mov dword [0x4a6360], eax
mov dword [0x4a6364], eax
mov dword [0x4a929c], 0
mov eax, edi
cmp edi, 0x32
jg 0x42bb86
mov eax, dword [edi*4 + 0x4a650c]
movzx esi, word [0x4a3c28]
imul esi, esi, 0x578
add eax, esi
fld dword [eax*4 + 0x4a9084]
fmul qword [0x48bf00]
fadd qword [0x47afd8]
call fcn.0045c160
mov dword [0x4a677c], eax
mov ecx, edi
cmp edi, 0x32
jg 0x42bbc0
mov ecx, dword [edi*4 + 0x4a650c]
add esi, ecx
mov ecx, dword [esi*4 + 0x4a8f6c]
imul ecx, ecx, 0x2710
cmp ecx, eax
jge 0x42bbdd
call fcn.00409ed0
mov eax, dword [0x4a677c]
mov dword [0x4a9460], eax
mov eax, dword [0x4a6474]
test eax, eax
jle 0x42bbf0
cmp eax, 9
jle 0x42bbfa
mov dword [0x4a6474], 4
call fcn.0040fcb0
call fcn.0040bb70
mov edx, dword [0x4a675c]
push edx
call fcn.0040ba80
add esp, 4
call fcn.0040fe20
mov eax, dword [0x4a64e8]
mov edx, 0x7530
mov ecx, 0x4e20
cmp eax, edx
jg 0x42bd48
je 0x42bd08
cmp eax, 0x2710
je 0x42bcaa
cmp eax, ecx
jne 0x42bd4c
mov eax, dword [0x4a3b24]
cmp eax, 0x258
jg 0x42bc7a
je 0x42bdba
cmp eax, 0x12c
jle 0x42bd8e
sub eax, 0x190
je 0x42bdc6
sub eax, 0x64
je 0x42bdba
jmp 0x42be0c
cmp eax, 0x384
jg 0x42bca0
je 0x42bdba
sub eax, 0x2bc
je 0x42bdba
sub eax, 0x64
je 0x42bdba
jmp 0x42be0c
cmp eax, 0x3e8
jmp 0x42bdb8
mov eax, dword [0x4a3b24]
cmp eax, 0x258
jg 0x42bcd4
je 0x42bcf9
cmp eax, 0x12c
jle 0x42bd8e
sub eax, 0x190
je 0x42bcf9
sub eax, 0x64
je 0x42bcf9
jmp 0x42be0c
cmp eax, 0x384
jg 0x42bcee
je 0x42bcf9
sub eax, 0x2bc
je 0x42bcf9
sub eax, 0x64
je 0x42bcf9
jmp 0x42be0c
cmp eax, 0x3e8
jne 0x42be0c
mov dword [0x4a93fc], 0x9c40
jmp 0x42be0c
mov eax, dword [0x4a3b24]
cmp eax, 0x258
jle 0x42bd85
cmp eax, 0x384
jg 0x42bd2e
je 0x42bd39
sub eax, 0x2bc
je 0x42bd39
sub eax, 0x64
je 0x42bd39
jmp 0x42be0c
cmp eax, 0x3e8
jne 0x42be0c
mov dword [0x4a93fc], 0x1d4c0
jmp 0x42be0c
cmp eax, ebx
je 0x42bd79
mov eax, dword [0x4a3b24]
cmp eax, 0x258
jle 0x42bd85
cmp eax, 0x384
jle 0x42bdd5
cmp eax, 0x3e8
jne 0x42be0c
mov dword [0x4a93fc], 0x493e0
jmp 0x42be0c
mov eax, dword [0x4a3b24]
cmp eax, 0x258
jg 0x42bdce
je 0x42bd39
cmp eax, 0x12c
jg 0x42bdae
je 0x42bcf9
sub eax, 0x64
je 0x42bda6
sub eax, 0x64
jne 0x42be0c
mov dword [0x4a93fc], edx
jmp 0x42be0c
mov dword [0x4a93fc], ecx
jmp 0x42be0c
sub eax, 0x190
je 0x42bdc6
sub eax, 0x64
jne 0x42be0c
mov dword [0x4a93fc], 0x15f90
jmp 0x42be0c
mov dword [0x4a93fc], ebx
jmp 0x42be0c
cmp eax, 0x384
jg 0x42bdfb
je 0x42be02
sub eax, 0x2bc
je 0x42bdef
sub eax, 0x64
jne 0x42be0c
mov dword [0x4a93fc], 0x2bf20
jmp 0x42be0c
mov dword [0x4a93fc], 0x249f0
jmp 0x42be0c
cmp eax, 0x3e8
jne 0x42be0c
mov dword [0x4a93fc], 0x35b60
mov eax, dword [0x4a3b64]
movzx edx, byte [0x4a3c28]
mov dword [0x4a93f8], eax
mov byte [0x4a6386], dl
mov cl, byte [0x4a3c2c]
mov eax, 0x51eb851f
imul dword [0x4a677c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [0x4a6388], ax
mov eax, 0x51eb851f
imul dword [0x4a6758]
sar edx, 5
mov byte [0x4a6387], cl
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [0x4a67b0]
mov byte [0x4a6382], 0
mov word [0x4a6384], cx
mov byte [0x4a638a], dl
call fcn.00423a30
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret