Function at 0x55af30
Capabilities:
Get common file path
Get file size
Read file on windows
Terminate process
Write file on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5d6058
push eax
mov dword fs:[0], esp
sub esp, 0x6c
mov eax, str.iext1.fnr.bbs.125.la
mov dword [0x7b9164], 0x7907fc
push ebp
push edi
test eax, eax
mov dword [0x7b9160], 0x55c2e0
je 0x55af1a
xor edi, edi
cmp word [str.iext1.fnr.bbs.125.la], di
je 0x55af1c
mov ecx, 0x55c2e0
test ecx, ecx
je 0x55af1c
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, eax
mov dword [esp + 0x18], edi
xor ebp, ebp
mov byte [esp + 0x20], 0
mov ecx, dword [ebx + 0x3c]
mov dword [esp + 0x2c], edi
add ecx, ebx
mov dword [esp + 0x24], ecx
cmp word [ecx + 6], di
lea eax, [ecx + 0xf8]
mov dword [esp + 0x28], eax
jbe 0x55ac6b
cmp ebp, edi
jne 0x55abff
mov ecx, 5
mov edi, str..text
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ac1b
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
lea esi, [ecx + ebx]
lea edi, [esi + eax]
lea eax, [esp + 0x18]
push eax
push edi
push esi
call fcn.0055c120
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x55ac1f
mov eax, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
xor esi, esi
mov si, word [ecx + 6]
add eax, 0x28
inc edx
mov dword [esp + 0x28], eax
cmp edx, esi
mov dword [esp + 0x2c], edx
jl 0x55abbe
jmp 0x55ac6b
xor edi, edi
jmp 0x55abfb
mov ax, word [ebp + 0x25]
mov edx, dword [esp + 0x18]
and eax, 0xffff
lea ecx, [ebp - 0xc]
test edx, edx
lea eax, [eax + ebp + 0x34]
je 0x55ac44
mov eax, dword [edx + 0xc0]
lea ecx, [edx - 0xc]
lea eax, [eax + edx + 0x34]
cmp ecx, esi
jae 0x55ac4a
mov ecx, esi
lea edx, [eax + 0xc]
cmp edx, edi
jb 0x55ac54
lea eax, [edi - 0xc]
push eax
push ecx
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.0055c240
add esp, 0x10
xor edi, edi
jmp 0x55ad27
mov eax, dword [ebx + 0x3c]
xor esi, esi
add eax, ebx
mov byte [esp + 0x13], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], esi
cmp word [eax + 6], di
lea ebp, [eax + 0xf8]
mov dword [esp + 0x2c], edi
jbe 0x55ad06
mov eax, dword [ebp + 0xc]
mov ecx, 5
add eax, ebx
mov edi, str..iext
mov esi, ebp
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55acb4
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x13]
test al, al
jne 0x55ad00
jmp 0x55ace6
mov cl, byte [esp + 0x13]
test cl, cl
jne 0x55ace6
mov ecx, 5
mov edi, str..text
mov esi, ebp
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x55ace6
lea ecx, [eax + 0x18]
push ecx
push eax
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.0055c240
add esp, 0x10
mov byte [esp + 0x13], 1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
add ebp, 0x28
mov cx, word [edx + 6]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x55ac8f
mov esi, dword [esp + 0x28]
xor edi, edi
cmp esi, edi
mov dword [esp + 0x18], esi
jne 0x55ad12
xor ebp, ebp
jmp 0x55ad22
lea eax, [esp + 0x18]
push eax
call fcn.0055c0a0
add esp, 4
lea ebp, [eax + esi]
mov byte [esp + 0x20], 1
mov eax, dword [esp + 0x18]
pop esi
cmp eax, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edi
pop ebx
je 0x55aeac
mov ecx, dword [eax + 0xa8]
and ecx, 1
cmp cl, 1
jne 0x55aeac
mov eax, dword [0x7b9150]
cmp eax, edi
je 0x55ad62
lea edx, [esp + 0xc]
test edx, edx
je 0x55ad86
jmp 0x55ad7c
push 0x7b9148
call fcn.0055fa80
lea edx, [esp + 0x10]
add esp, 4
test edx, edx
mov dword [0x7b9150], eax
je 0x55ad86
mov ecx, dword [0x7b9148]
mov dword [esp + 0xc], ecx
push eax
mov dword [esp + 0x18], eax
call fcn.0055cb30
add esp, 4
cmp eax, edi
jne 0x55ae13
mov dword [esp + 0x24], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x20], edi
push 0x65
push 3
push 3
lea edx, [esp + 0x30]
push 0x7907d0
push edx
mov byte [esp + 0x90], 1
call fcn.0055d310
add esp, 0x14
lea eax, [esp + 0x20]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
mov ecx, 0x7b9158
call fcn.0055b640
mov eax, dword [esp + 0x24]
cmp eax, edi
je 0x55adf1
mov ecx, dword [eax + 8]
jmp 0x55adf3
xor ecx, ecx
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x55ae00
mov eax, dword [eax + 8]
jmp 0x55ae02
xor eax, eax
push 0x10
push ecx
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
call fcn.005b6830
push str.CreateIextInterface
push eax
call fcn.0055cbd0
add esp, 8
cmp eax, edi
jne 0x55ae8e
mov dword [esp + 0x18], edi
push 0x65
push 3
push 3
lea eax, [esp + 0x24]
push 0x790798
push eax
mov dword [esp + 0x90], 2
call fcn.0055d4c0
mov eax, dword [esp + 0x2c]
add esp, 0x14
cmp eax, edi
je 0x55ae59
mov eax, dword [eax + 8]
jmp 0x55ae5b
xor eax, eax
push 0x10
push eax
push 0x790748
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x18]
mov dword [esp + 0x7c], 0xffffffff
call fcn.0055e2c0
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x28]
push ecx
push ebp
push edx
call eax
pop edi
pop ebp
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, 0x7b9158
call 0x55af30
mov ecx, dword [0x7b915c]
cmp ecx, edi
je 0x55aecf
mov ecx, dword [ecx + 8]
jmp 0x55aed1
xor ecx, ecx
mov edx, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push ecx
push eax
call fcn.0055c330
add esp, 0x10
cmp eax, edi
jne 0x55aefc
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
push edx
push ebp
push ecx
call eax
mov ecx, dword [esp + 0x74]
pop edi
pop ebp
mov dword fs:[0], ecx
add esp, 0x78
ret
xor edi, edi
push edi
push edi
call fcn.005b6923
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0xffffffffffffffff
push 0x5d6086
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x32c
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x28], edi
mov eax, dword [edi]
cmp eax, ebx
jne 0x55b379
mov eax, dword [edi + 4]
lea ebp, [edi + 4]
cmp eax, ebx
jne 0x55af7a
push ebx
push 0x104
mov ecx, ebp
call fcn.0055e640
jmp 0x55afc8
mov esi, dword [eax]
mov eax, dword [eax + 0xc]
cmp eax, 0x104
jae 0x55af94
add eax, 0x1104
push ebx
push eax
mov ecx, ebp
call fcn.0055ea40
mov eax, dword [ebp]
cmp esi, 0x104
mov dword [eax], 0x104
mov eax, dword [ebp]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov word [edx + ecx*2], bx
jb 0x55afc8
mov eax, 0x104
jbe 0x55afc8
mov ecx, dword [ebp]
inc eax
cmp eax, esi
mov edx, dword [ecx + 8]
mov word [edx + eax*2 - 2], bx
jb 0x55afb8
mov eax, dword [ebp]
cmp eax, ebx
je 0x55afd4
mov eax, dword [eax + 8]
jmp 0x55afd6
xor eax, eax
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [ebp]
cmp eax, ebx
je 0x55affa
mov eax, dword [eax + 8]
push eax
call fcn.0055fa60
mov ecx, dword [ebp]
add esp, 4
mov dword [ecx], eax
mov esi, dword [edi + 0xc]
cmp esi, ebx
je 0x55b077
push esi
call fcn.0055fa60
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x55b077
cmp dword [ebp], ebx
jne 0x55b024
lea edx, [edi + 0x1000]
push ebx
push edx
mov ecx, ebp
call fcn.0055ea40
mov eax, dword [ebp]
mov edx, dword [eax]
mov ecx, dword [eax + 0xc]
lea ebx, [edx + edi]
cmp ebx, ecx
ja 0x55b038
lea ecx, [edi + edi]
jmp 0x55b050
lea eax, [ebx + 0x1000]
push 0
push eax
mov ecx, ebp
call fcn.0055ea40
mov eax, dword [ebp]
lea ecx, [edi + edi]
mov edx, dword [eax]
mov eax, dword [eax + 8]
lea edi, [eax + edx*2]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
mov word [ecx + ebx*2], 0
mov edx, dword [ebp]
mov dword [edx], ebx
xor ebx, ebx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x17], 1
mov dword [esp + 0x24], ebx
call dword [ecx + 8]
mov ecx, eax
mov eax, dword [esp + 0x350]
add esp, 4
cmp eax, ebx
mov dword [esp + 0x24], ecx
je 0x55b0a2
mov dword [eax], ecx
mov eax, dword [esp + 0x350]
cmp eax, ebx
je 0x55b0b3
mov edx, dword [esp + 0x20]
mov dword [eax], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov eax, dword [ebp]
mov dword [esp + 0x344], ebx
cmp eax, ebx
je 0x55b0ce
mov esi, dword [eax + 8]
jmp 0x55b0d0
xor esi, esi
mov eax, dword [0x7b914c]
cmp eax, ebx
jne 0x55b105
push str.Shlwapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, ebx
je 0x55b22f
push str.PathFileExistsW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x7b914c], eax
je 0x55b22f
push esi
call eax
cmp eax, ebx
je 0x55b22f
mov eax, dword [ebp]
cmp eax, ebx
je 0x55b11c
mov esi, dword [eax + 8]
jmp 0x55b11e
xor esi, esi
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x55b131
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x14], ebx
push ebx
push 0x80
push 3
push ebx
push 7
push accept
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x55b22f
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp edi, ebx
mov dword [esp + 0x14], edi
je 0x55b1f7
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x55b180
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x55b1f7
cmp edi, ebx
jle 0x55b1f7
push edi
call fcn.005c6792
mov esi, eax
mov eax, dword [esp + 0x18]
add esp, 4
cmp eax, ebx
je 0x55b1ee
lea ecx, [esp + 0x1c]
push ebx
push ecx
push edi
push esi
push eax
mov dword [esp + 0x30], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
je 0x55b1ee
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xb0]
push edx
push eax
push ecx
call fcn.0055b500
lea edx, [esp + 0x38]
push edx
push edi
push esi
call fcn.0055b500
lea eax, [esp + 0x44]
lea ecx, [esp + 0xc8]
push eax
push ecx
call fcn.005b6aa8
add esp, 0x20
test eax, eax
jne 0x55b1ee
mov byte [esp + 0x13], al
push esi
call fcn.005c67bb
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x55b20c
push eax
call fcn.005c67bb
add esp, 4
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x55b223
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x55b223
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x13]
test al, al
je 0x55b301
mov eax, dword [ebp]
cmp eax, ebx
je 0x55b23b
mov eax, dword [eax + 8]
jmp 0x55b23d
xor eax, eax
push 0xffffffffffffffff
push 4
push eax
lea ecx, [esp + 0x20]
call fcn.0055b3e0
test eax, eax
setne al
test al, al
jne 0x55b2d1
push ebx
call fcn.005b69cc
push eax
call fcn.005b4632
push 6
lea edx, [esp + 0x28]
push 0x14
push edx
call fcn.0055d4e0
add esp, 0x14
mov eax, dword [eax]
mov byte [esp + 0x344], 1
cmp eax, ebx
je 0x55b283
mov ecx, dword [eax]
jmp 0x55b285
xor ecx, ecx
cmp eax, ebx
je 0x55b28e
mov eax, dword [eax + 8]
jmp 0x55b290
xor eax, eax
push ecx
push eax
push 1
mov ecx, ebp
call fcn.0055e7a0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x344], 0
call fcn.0055e2c0
mov eax, dword [ebp]
cmp eax, ebx
je 0x55b2b8
mov eax, dword [eax + 8]
jmp 0x55b2ba
xor eax, eax
push 0xffffffffffffffff
push 4
push eax
lea ecx, [esp + 0x20]
call fcn.0055b3e0
test eax, eax
setne al
test al, al
je 0x55b30d
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x55b30d
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push ebx
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ecx
push eax
mov dword [esp + 0x30], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, ebx
je 0x55b30d
lea ecx, [esp + 0x14]
call fcn.0055b4c0
mov ebp, dword [ebp]
cmp ebp, ebx
je 0x55b352
mov eax, dword [ebp + 8]
jmp 0x55b354
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [esp + 0x138]
push 0x79083c
push edx
call fcn.005b695d
add esp, 0xc
lea eax, [esp + 0x134]
push ebx
push 0x790828
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push ebx
call fcn.005b6830
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, dword [esp + 0x28]
mov esi, eax
mov dword [esp + 0x344], 0xffffffff
mov dword [ecx], esi
lea ecx, [esp + 0x14]
call fcn.0055b4c0
mov eax, esi
mov ecx, dword [esp + 0x33c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x338
ret 8