Function at 0x42bc30
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 [0x4ab000]
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 0x492740
lea ecx, [ebp - 0x404]
push ecx
lea edx, [ebp - 0x204]
push str._s_s_s
push edx
call fcn.00409dc0
lea eax, [ebp - 0x204]
push 0x492904
push eax
call fcn.0045e277
mov esi, eax
xor edi, edi
add esp, 0x1c
cmp esi, edi
je 0x42be17
push 0x58
lea ecx, [ebp - 0x45c]
push edi
push ecx
call fcn.0045d730
push esi
mov ebx, 1
push ebx
lea edx, [ebp - 0x45c]
push 0x58
push edx
call fcn.0045e66f
push esi
call fcn.0045e12a
mov eax, dword [ebp - 0x45c]
mov word [0x4af654], ax
shr eax, 0x10
mov word [0x4aa03c], ax
mov eax, dword [ebp - 0x458]
mov dword [0x4aa040], 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, 0x4ac670
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 [0x4aca3c], ecx
mov ecx, dword [ebp - 0x440]
mov dword [0x4aca44], ecx
mov ecx, dword [ebp - 0x42c]
mov dword [0x4aca28], ecx
mov ecx, dword [ebp - 0x438]
mov dword [0x4aca2c], edx
mov edx, dword [ebp - 0x434]
mov dword [0x4aca40], eax
mov eax, dword [ebp - 0x430]
mov dword [0x4aca4c], ecx
mov ecx, dword [ebp - 0x450]
mov dword [0x4aca30], edx
mov edx, dword [ebp - 0x428]
mov dword [0x4aca34], eax
mov eax, dword [ebp - 0x43c]
mov dword [0x4a9f34], ecx
movzx ecx, byte [ebp - 0x418]
mov dword [0x4aca24], edx
mov edx, dword [ebp - 0x424]
mov dword [0x4aca48], eax
mov eax, dword [ebp - 0x420]
mov dword [0x4aca50], edx
mov edx, dword [ebp - 0x44c]
mov dword [0x4aca54], eax
mov eax, dword [ebp - 0x41c]
mov byte [0x4af656], cl
movzx ecx, byte [ebp - 0x411]
mov dword [0x4a9f38], edx
mov edx, dword [0x4ac6b5]
mov dword [0x4af5f0], eax
mov ax, word [0x4ac6b9]
mov byte [0x4aa03e], cl
movzx ecx, byte [ebp - 0x408]
mov dword [str.111111], edx
mov edx, dword [ebp - 0x410]
mov word [0x4aa048], ax
mov eax, dword [ebp - 0x40c]
add esp, 0x20
mov dword [0x4aca9c], edx
mov dword [0x4a1064], eax
mov byte [0x4a1053], cl
xor edi, edi
jmp 0x42bf6b
mov dx, word [0x4af654]
mov ax, word [0x4aa03c]
mov ecx, dword [0x4aa040]
mov word [0x4ac670], dx
mov edx, dword [0x4aca3c]
mov dword [0x4ac678], edx
mov edx, dword [0x4aca44]
mov word [0x4ac672], ax
mov eax, dword [0x4aca2c]
mov dword [0x4ac68c], edx
mov edx, dword [0x4aca28]
mov dword [0x4ac684], eax
mov eax, dword [0x4aca30]
mov dword [0x4ac674], ecx
mov ecx, dword [0x4aca40]
mov dword [0x4ac6a0], edx
mov edx, dword [0x4aca4c]
mov dword [0x4ac698], eax
mov eax, dword [0x4aca24]
mov dword [0x4ac688], ecx
mov ecx, dword [0x4aca34]
mov dword [0x4ac694], edx
mov edx, dword [0x4a9f34]
mov dword [0x4ac6a4], eax
mov eax, dword [0x4aca50]
mov dword [0x4ac69c], ecx
mov ecx, dword [0x4aca48]
mov dword [0x4ac67c], edx
movzx edx, byte [0x4af656]
mov dword [0x4ac6a8], eax
mov eax, dword [0x4a9f38]
mov dword [0x4ac690], ecx
mov ecx, dword [0x4aca54]
mov dword [0x4ac680], eax
mov eax, dword [str.111111]
mov dword [0x4ac6ac], ecx
mov ecx, dword [0x4af5f0]
mov byte [0x4ac6b4], dl
movzx edx, byte [0x4aa03e]
mov dword [0x4ac6b5], eax
mov eax, dword [0x4aca9c]
mov dword [0x4ac6b0], ecx
mov cx, word [0x4aa048]
mov byte [0x4ac6bb], dl
movzx edx, byte [0x4a1053]
mov dword [0x4ac6bc], eax
mov word [0x4ac6b9], cx
mov ecx, dword [0x4a1064]
lea eax, [ebp - 0x204]
push 0x4950b8
push eax
mov dword [0x4ac6c0], ecx
mov byte [0x4ac6c4], dl
call fcn.0045e277
mov esi, eax
push esi
mov ebx, 1
push ebx
push 0x58
push 0x4ac670
call fcn.0045eae2
push esi
call fcn.0045e12a
add esp, 0x1c
mov ecx, dword [0x4afd80]
mov dl, byte [0x4a1053]
mov byte [ecx + 0xf4], dl
mov eax, dword [0x4afd80]
mov dword [eax + 0xa4], edi
mov cl, byte [0x4aa03e]
mov edx, dword [0x4af818]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a9f34]
cmp eax, edi
jle 0x42bffa
cmp dword [0x4aca2c], eax
jge 0x42bfc0
cmp dword [0x4af5f0], edi
jg 0x42bfc0
mov eax, dword [0x4afd80]
cmp dword [eax + 0xa4], edi
je 0x42bffa
mov ecx, dword [0x4acc30]
push 0x476
push ecx
mov byte [0x4aca1e], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4acc30]
push edi
push 0x320
push 0x476
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4aca1f], 0
jmp 0x42c031
mov eax, dword [0x4acc30]
push 0x48d
push eax
mov byte [0x4aca1f], 1
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4acc30]
push edi
push 0x320
push 0x48d
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4aca1e], 0
mov eax, dword [0x4aca9c]
cmp eax, edi
jle 0x42c03f
cmp eax, 5
jl 0x42c045
mov dword [0x4aca9c], edi
mov edx, dword [0x4aff4c]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4aff50]
mov dword [eax + 0xa4], ebx
mov ecx, dword [0x4aff54]
mov dword [ecx + 0xa4], ebx
mov edx, dword [0x4aff58]
mov dword [edx + 0xa4], ebx
mov eax, dword [0x4aff5c]
mov dword [eax + 0xa4], ebx
cmp word [0x4af654], di
je 0x42c1b7
mov ecx, dword [0x4ac6e0]
mov edx, dword [0x4ac6e4]
mov eax, dword [0x4ac6e8]
mov esi, dword [0x4ac704]
mov dword [0x4aa01c], ecx
mov ecx, dword [0x4ac6f0]
mov dword [0x4aa020], edx
mov edx, dword [0x4ac6f4]
mov dword [0x4aa028], ecx
mov cx, word [0x4ac7e4]
mov dword [0x4aa024], eax
mov eax, dword [0x4ac700]
mov dword [0x4aa02c], edx
mov edx, dword [0x4ac7e8]
mov word [0x4aa03c], cx
mov dword [0x4a9f34], eax
mov dword [0x4a9f38], esi
xor ecx, ecx
cmp edx, dword [ecx*4 + 0x4ac7f0]
je 0x42c199
add ecx, ebx
cmp ecx, 0x32
jl 0x42c0f2
mov dword [0x4aa040], edx
mov ecx, dword [0x4ac9d4]
cmp ecx, edi
jl 0x42c11b
cmp ecx, 0x64
jle 0x42c123
mov ecx, ebx
mov dword [0x4ac9d4], ecx
mov dword [0x4aca70], edi
cmp ecx, edi
jle 0x42c1a5
call fcn.0045dc7c
mov esi, dword [0x4a9f38]
mov dword [ebp - 0x460], eax
fild dword [ebp - 0x460]
mov dword [0x4aca74], edi
fnstcw word [ebp - 0x45e]
movzx eax, word [ebp - 0x45e]
fmul qword [0x492af0]
or eax, 0xc00
mov dword [ebp - 0x464], eax
mov eax, dword [0x4a9f34]
fmul qword [0x492588]
fldcw word [ebp - 0x464]
fistp qword [ebp - 0x468]
mov edx, dword [ebp - 0x468]
add edx, 0xc8
mov dword [0x4a112c], edx
fldcw word [ebp - 0x45e]
jmp 0x42c1c9
inc ecx
mov dword [0x4aa040], ecx
jmp 0x42c10c
mov dword [0x4a112c], 0xffffffff
mov dword [0x4aca74], edi
jmp 0x42c1c9
mov eax, dword [0x4a9f34]
mov esi, dword [0x4a9f38]
mov word [0x4af654], bx
mov edi, 2
lea ebx, [edi + 4]
lea edx, [edi + 6]
cmp eax, 0x258
jg 0x42c24f
je 0x42c243
cmp eax, 0x12c
jg 0x42c21c
je 0x42c214
mov ecx, eax
sub ecx, 0x64
je 0x42c205
sub ecx, 0x64
jne 0x42c294
mov dword [0x4af4f0], 1
jmp 0x42c294
mov dword [0x4af4f0], 0
jmp 0x42c294
mov dword [0x4af4f0], edi
jmp 0x42c294
mov ecx, eax
sub ecx, 0x190
je 0x42c237
sub ecx, 0x64
jne 0x42c294
mov dword [0x4af4f0], 4
jmp 0x42c294
mov dword [0x4af4f0], 3
jmp 0x42c294
mov dword [0x4af4f0], 5
jmp 0x42c294
cmp eax, 0x384
jg 0x42c283
je 0x42c27b
mov ecx, eax
sub ecx, 0x2bc
je 0x42c273
sub ecx, 0x64
jne 0x42c294
mov dword [0x4af4f0], 7
jmp 0x42c294
mov dword [0x4af4f0], ebx
jmp 0x42c294
mov dword [0x4af4f0], edx
jmp 0x42c294
cmp eax, 0x3e8
jne 0x42c294
mov dword [0x4af4f0], 9
cmp esi, 0x258
jg 0x42c311
je 0x42c305
cmp esi, 0x12c
jg 0x42c2de
je 0x42c2d6
mov ecx, esi
sub ecx, 0x64
je 0x42c2c7
sub ecx, 0x64
jne 0x42c358
mov dword [0x4a9f3c], 1
jmp 0x42c358
mov dword [0x4a9f3c], 0
jmp 0x42c358
mov dword [0x4a9f3c], edi
jmp 0x42c358
mov ecx, esi
sub ecx, 0x190
je 0x42c2f9
sub ecx, 0x64
jne 0x42c358
mov dword [0x4a9f3c], 4
jmp 0x42c358
mov dword [0x4a9f3c], 3
jmp 0x42c358
mov dword [0x4a9f3c], 5
jmp 0x42c358
cmp esi, 0x384
jg 0x42c346
je 0x42c33e
mov ecx, esi
sub ecx, 0x2bc
je 0x42c336
sub ecx, 0x64
jne 0x42c358
mov dword [0x4a9f3c], 7
jmp 0x42c358
mov dword [0x4a9f3c], ebx
jmp 0x42c358
mov dword [0x4a9f3c], edx
jmp 0x42c358
cmp esi, 0x3e8
jne 0x42c358
mov dword [0x4a9f3c], 9
mov ebx, 0xea60
cmp eax, 0x258
jg 0x42c3d7
je 0x42c3cf
cmp eax, 0x12c
jg 0x42c3ab
je 0x42c39d
sub eax, 0x64
je 0x42c38c
sub eax, 0x64
jne 0x42c421
mov eax, dword [0x4ac7cc]
mov dword [0x4a9fcc], eax
jmp 0x42c421
mov ecx, dword [0x4ac7c8]
mov dword [0x4a9fcc], ecx
jmp 0x42c421
mov edx, dword [0x4ac7dc]
mov dword [0x4a9fcc], edx
jmp 0x42c421
sub eax, 0x190
je 0x42c3c3
sub eax, 0x64
jne 0x42c421
mov dword [0x4a9fcc], 0xc350
jmp 0x42c421
mov dword [0x4a9fcc], 0x9c40
jmp 0x42c421
mov dword [0x4a9fcc], ebx
jmp 0x42c421
cmp eax, 0x384
jg 0x42c410
je 0x42c404
sub eax, 0x2bc
je 0x42c3f8
sub eax, 0x64
jne 0x42c421
mov dword [0x4a9fcc], 0x13880
jmp 0x42c421
mov dword [0x4a9fcc], 0x11170
jmp 0x42c421
mov dword [0x4a9fcc], 0x15f90
jmp 0x42c421
cmp eax, 0x3e8
jne 0x42c421
mov dword [0x4a9fcc], 0x186a0
mov edi, dword [0x4aa040]
mov eax, 0x66666667
imul dword [0x4a9fcc]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x4ac620], eax
mov dword [0x4ac624], eax
mov dword [0x4ac628], eax
mov dword [0x4ac62c], eax
mov dword [0x4ac630], eax
mov dword [0x4ac634], eax
mov dword [0x4ac638], eax
mov dword [0x4ac63c], eax
mov dword [0x4ac640], eax
mov dword [0x4ac644], eax
mov dword [0x4af584], 0
mov eax, edi
cmp edi, 0x32
jg 0x42c486
mov eax, dword [edi*4 + 0x4ac7ec]
movzx esi, word [0x4aa03c]
imul esi, esi, 0x578
add eax, esi
fld dword [eax*4 + 0x4af3ac]
fmul qword [0x492768]
fadd qword [0x47c008]
call fcn.0045d810
mov dword [0x4aca5c], eax
mov ecx, edi
cmp edi, 0x32
jg 0x42c4c0
mov ecx, dword [edi*4 + 0x4ac7ec]
add esi, ecx
mov ecx, dword [esi*4 + 0x4af294]
imul ecx, ecx, 0x2710
cmp ecx, eax
jge 0x42c4dd
call fcn.0040a640
mov eax, dword [0x4aca5c]
mov dword [0x4af760], eax
mov eax, dword [0x4ac754]
test eax, eax
jle 0x42c4f0
cmp eax, 9
jle 0x42c4fa
mov dword [0x4ac754], 4
call fcn.00411ae0
call fcn.0040d960
mov edx, dword [0x4aca3c]
push edx
call fcn.0040d870
add esp, 4
call fcn.00411c50
mov eax, dword [0x4ac7c8]
mov edx, 0x7530
mov ecx, 0x4e20
cmp eax, edx
jg 0x42c648
je 0x42c608
cmp eax, 0x2710
je 0x42c5aa
cmp eax, ecx
jne 0x42c64c
mov eax, dword [0x4a9f38]
cmp eax, 0x258
jg 0x42c57a
je 0x42c6ba
cmp eax, 0x12c
jle 0x42c68e
sub eax, 0x190
je 0x42c6c6
sub eax, 0x64
je 0x42c6ba
jmp 0x42c70c
cmp eax, 0x384
jg 0x42c5a0
je 0x42c6ba
sub eax, 0x2bc
je 0x42c6ba
sub eax, 0x64
je 0x42c6ba
jmp 0x42c70c
cmp eax, 0x3e8
jmp 0x42c6b8
mov eax, dword [0x4a9f38]
cmp eax, 0x258
jg 0x42c5d4
je 0x42c5f9
cmp eax, 0x12c
jle 0x42c68e
sub eax, 0x190
je 0x42c5f9
sub eax, 0x64
je 0x42c5f9
jmp 0x42c70c
cmp eax, 0x384
jg 0x42c5ee
je 0x42c5f9
sub eax, 0x2bc
je 0x42c5f9
sub eax, 0x64
je 0x42c5f9
jmp 0x42c70c
cmp eax, 0x3e8
jne 0x42c70c
mov dword [0x4af6e4], 0x9c40
jmp 0x42c70c
mov eax, dword [0x4a9f38]
cmp eax, 0x258
jle 0x42c685
cmp eax, 0x384
jg 0x42c62e
je 0x42c639
sub eax, 0x2bc
je 0x42c639
sub eax, 0x64
je 0x42c639
jmp 0x42c70c
cmp eax, 0x3e8
jne 0x42c70c
mov dword [0x4af6e4], 0x1d4c0
jmp 0x42c70c
cmp eax, ebx
je 0x42c679
mov eax, dword [0x4a9f38]
cmp eax, 0x258
jle 0x42c685
cmp eax, 0x384
jle 0x42c6d5
cmp eax, 0x3e8
jne 0x42c70c
mov dword [0x4af6e4], 0x493e0
jmp 0x42c70c
mov eax, dword [0x4a9f38]
cmp eax, 0x258
jg 0x42c6ce
je 0x42c639
cmp eax, 0x12c
jg 0x42c6ae
je 0x42c5f9
sub eax, 0x64
je 0x42c6a6
sub eax, 0x64
jne 0x42c70c
mov dword [0x4af6e4], edx
jmp 0x42c70c
mov dword [0x4af6e4], ecx
jmp 0x42c70c
sub eax, 0x190
je 0x42c6c6
sub eax, 0x64
jne 0x42c70c
mov dword [0x4af6e4], 0x15f90
jmp 0x42c70c
mov dword [0x4af6e4], ebx
jmp 0x42c70c
cmp eax, 0x384
jg 0x42c6fb
je 0x42c702
sub eax, 0x2bc
je 0x42c6ef
sub eax, 0x64
jne 0x42c70c
mov dword [0x4af6e4], 0x2bf20
jmp 0x42c70c
mov dword [0x4af6e4], 0x249f0
jmp 0x42c70c
cmp eax, 0x3e8
jne 0x42c70c
mov dword [0x4af6e4], 0x35b60
mov eax, dword [0x4a9fcc]
movzx edx, byte [0x4aa03c]
mov dword [0x4af6e0], eax
mov byte [0x4ac666], dl
mov cl, byte [0x4aa040]
mov eax, 0x51eb851f
imul dword [0x4aca5c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [0x4ac668], ax
mov eax, 0x51eb851f
imul dword [0x4aca38]
sar edx, 5
mov byte [0x4ac667], cl
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx edx, byte [0x4aca9c]
mov byte [0x4ac662], 0
mov word [0x4ac664], cx
mov byte [0x4ac66a], dl
call fcn.00424810
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045d691
mov esp, ebp
pop ebp
ret