Function at 0x415520
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x51df40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_signal]
xorps xmm0, xmm0
push edi
mov edi, dword [ebp + 0xc]
push 0x416230
push 2
mov byte [ebp - 0x18], 0
movups xmmword [ebp - 0x17], xmm0
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
call esi
push 0x416230
push 0xf
call esi
push 0x4deef8
push 4
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_setlocale]
add esp, 0x18
call fcn.004053c0
mov ebx, dword [ebp + 8]
mov esi, 1
cmp ebx, esi
jle 0x4155e3
nop word [eax + eax]
mov eax, dword [edi + esi*4]
mov ecx, 0x4deefc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4155b8
test dl, dl
je 0x4155b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4155b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x415598
xor eax, eax
jmp 0x4155bd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4155de
mov ecx, dword [edi + esi*4 + 4]
mov edx, str.._config.xml
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x4155d0
inc esi
cmp esi, ebx
jl 0x415590
push 0x51c1a0
push str.._config.xml
call fcn.00408450
push edi
push ebx
mov dword [0x52042c], eax
call fcn.00414190
add esp, 0x10
test al, al
jne 0x41560d
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
cmp word [0x5240a2], 0
je 0x41562c
cmp word [0x5240a0], 0
jne 0x41562c
mov eax, 0x80
mov word [0x5240a0], ax
cmp dword [0x520418], 0
je 0x415685
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push 2
call esi
push eax
push 0x4de63c
push dword [0x520418]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_freopen]
add esp, 0x10
test eax, eax
jne 0x415685
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push dword [eax]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_strerror]
add esp, 4
push eax
push dword [0x520418]
push str.error_opening_logfile__s:__s_n
push 2
call esi
add esp, 4
push eax
call fcn.00404750
add esp, 0x10
mov eax, dword [0x51c9d0]
cmp dword [eax], 1
jl 0x4156b1
push str.v0.9.2__Mar__5_2024___17:08:10_
push 0x4c7
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_Starting_spotraop_version:__s_n_n
call fcn.004048b0
add esp, 0x14
push 0
push str.0.30
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fstp qword [ebp - 0xbc]
movsd xmm0, qword [ebp - 0xbc]
add esp, 8
ucomisd xmm0, qword [str.333333]
lahf
test ah, 0x44
jnp 0x415704
mov eax, dword [0x51c9d0]
cmp dword [eax], 2
jl 0x415704
push 0x4ca
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_weird_GLIBC__try__static_build_in_case_of_failure_n
call fcn.004048b0
add esp, 0x10
cmp dword [0x52042c], 0
jne 0x415736
mov eax, dword [0x51c9d0]
cmp dword [eax], 1
jl 0x415736
push 0
push 0x4ce
push str.main
call fcn.004048f0
push eax
push str._s__s:_d__n_n___________________ERROR_LOADING_CONFIG_FILE_______________________n_n
call fcn.004048b0
add esp, 0x14
cmp byte [0x5203f6], 0
je 0x415767
call fcn.00414830
push 0xee48
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00414d30
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret
cmp byte [0x5203f7], 0
je 0x4158d5
mov byte [0x5203f6], 1
call fcn.00414830
push str._n_Wait_5_seconds_for_player_discovery__n
call fcn.00401410
add esp, 4
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push str._n_done__n
call fcn.00401410
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb4], 0
push eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb0], 0
push eax
push 0
call fcn.0044d1b0
add esp, 0x10
test al, al
je 0x4158bd
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
nop dword [eax]
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x41589d
cmp dword [ebp - 0xb0], 0
je 0x41589d
xor edi, edi
mov esi, 0x524bf0
cmp byte [esi - 0xb30], 0
je 0x41581c
push eax
push esi
call ebx
add esp, 8
test eax, eax
je 0x41582d
mov eax, dword [ebp - 0xb4]
add esi, 0xd70
inc edi
cmp esi, 0x53f9f0
jl 0x415802
jmp 0x415869
mov ecx, dword [ebp - 0xb0]
imul edx, edi, 0xd70
sub edx, ecx
add edx, 0x5245dd
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x415841
push 0
push dword [0x52042c]
push str.._config.xml
call fcn.00408c80
mov eax, dword [ebp - 0xb4]
add esp, 0xc
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test eax, eax
je 0x415883
push eax
call esi
add esp, 4
mov dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x41589d
push eax
call esi
add esp, 4
mov dword [ebp - 0xb0], 0
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0xb4]
push eax
push 0
call fcn.0044d1b0
add esp, 0xc
test al, al
jne 0x4157e0
call fcn.00414d30
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret
cmp byte [0x520434], 0
je 0x415ae8
mov byte [0x5203f6], 1
call fcn.00414830
push str._n_Wait_5_seconds_for_player_discovery__n
call fcn.00401410
add esp, 4
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
push str._n_done__n
call fcn.00401410
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb4], 0
push eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb0], 0
push eax
push fcn.00413dd0
push 0
call fcn.0044dec0
add esp, 0x14
test al, al
je 0x415ad0
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x415aab
xor ebx, ebx
mov esi, 0x524bf0
cmp byte [esi - 0xb30], 0
je 0x415983
push eax
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x415997
mov eax, dword [ebp - 0xb4]
add esi, 0xd70
inc ebx
cmp esi, 0x53f9f0
jl 0x415965
jmp 0x415a7d
mov edx, dword [ebp - 0xb0]
imul edi, ebx, 0xd70
mov byte [edi + 0x5246dd], 0
test edx, edx
je 0x415a5c
cmp byte [edx], 0
je 0x415a5c
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4159c0
sub esi, ecx
mov ecx, esi
je 0x4159ea
lea edi, [edi + 0x524bf0]
add edi, esi
mov al, byte [edi - 1]
lea edi, [edi - 1]
xor byte [ecx + edx - 1], al
dec ecx
mov edx, dword [ebp - 0xb0]
test ecx, ecx
jne 0x4159d5
lea eax, [ebp - 0xb8]
push eax
push esi
push edx
call fcn.00406630
mov esi, dword [ebp - 0xb8]
add esp, 0xc
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415a06
sub ecx, edx
lea eax, [esi - 1]
add eax, ecx
cmp byte [eax], 0x3d
jne 0x415a31
nop dword [eax]
mov byte [eax], 0
lea eax, [eax - 1]
cmp byte [eax], 0x3d
je 0x415a20
mov esi, dword [ebp - 0xb8]
imul edx, ebx, 0xd70
mov ecx, esi
sub edx, ecx
add edx, 0x5246dd
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x415a41
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push esi
call edi
add esp, 4
jmp 0x415a62
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push 0
push dword [0x52042c]
push str.._config.xml
call fcn.00408c80
mov eax, dword [ebp - 0xb4]
add esp, 0xc
test eax, eax
je 0x415a91
push eax
call edi
add esp, 4
mov dword [ebp - 0xb4], 0
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x415aab
push eax
call edi
add esp, 4
mov dword [ebp - 0xb0], 0
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0xb4]
push eax
push fcn.00413dd0
push 0
call fcn.0044dec0
add esp, 0x10
test al, al
jne 0x415950
call fcn.00414d30
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5203f8]
test eax, eax
je 0x415b51
push 0x4dd314
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x415b24
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__getpid]
push eax
push 0x4dd17c
push esi
call fcn.00404750
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x10
jmp 0x415b51
mov eax, dword [0x51c9d0]
cmp dword [eax], 1
jl 0x415b51
push dword [0x5203f8]
push 0x52a
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_Cannot_open_PID_file__s_n
call fcn.004048b0
add esp, 0x14
call fcn.00414830
test al, al
jne 0x415b8b
mov eax, dword [0x51c9d0]
cmp dword [eax], 1
jl 0x415b83
push 0
push 0x52f
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_Cannot_start__exiting_n
call fcn.004048b0
add esp, 0x14
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov ecx, 0x4df0d4
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415bb3
test dl, dl
je 0x415baf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415bb3
add eax, 2
add ecx, 2
test dl, dl
jne 0x415b93
xor eax, eax
jmp 0x415bb8
sbb eax, eax
or eax, 1
test eax, eax
je 0x415e7d
cmp byte [0x51c9d6], 0
je 0x415bdc
lea eax, [ebp - 0x18]
push eax
push 0x4dc7f0
call fcn.00415ef0
add esp, 8
jmp 0x415be4
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, str.maindbg
lea eax, [ebp - 0x18]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415c10
test dl, dl
je 0x415c0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415c10
add eax, 2
add ecx, 2
test dl, dl
jne 0x415bf0
xor eax, eax
jmp 0x415c15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415c38
lea eax, [ebp - 0x2c]
push eax
push 0x4dc7f0
call fcn.00415ef0
lea eax, [ebp - 0x2c]
push eax
call fcn.00404610
add esp, 0xc
mov dword [0x51c19c], eax
mov ecx, str.utildbg
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415c60
test dl, dl
je 0x415c5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415c60
add eax, 2
add ecx, 2
test dl, dl
jne 0x415c40
xor eax, eax
jmp 0x415c65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415c88
lea eax, [ebp - 0x2c]
push eax
push 0x4dc7f0
call fcn.00415ef0
lea eax, [ebp - 0x2c]
push eax
call fcn.00404610
add esp, 0xc
mov dword [0x51c9c8], eax
mov ecx, str.raopdbg
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415cb0
test dl, dl
je 0x415cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x415c90
xor eax, eax
jmp 0x415cb5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415cd8
lea eax, [ebp - 0x2c]
push eax
push 0x4dc7f0
call fcn.00415ef0
lea eax, [ebp - 0x2c]
push eax
call fcn.00404610
add esp, 0xc
mov dword [0x51c9cc], eax
mov ecx, str.save
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415d00
test dl, dl
je 0x415cfc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415d00
add eax, 2
add ecx, 2
test dl, dl
jne 0x415ce0
xor eax, eax
jmp 0x415d05
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415d31
lea eax, [ebp - 0xac]
push eax
push 0x4dc7f0
call fcn.00415ef0
push 0
push dword [0x52042c]
lea eax, [ebp - 0xac]
push eax
call fcn.00408c80
add esp, 0x14
mov ecx, str.dump
lea eax, [ebp - 0x18]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415d60
test dl, dl
je 0x415d5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415d60
add eax, 2
add ecx, 2
test dl, dl
jne 0x415d40
xor eax, eax
jmp 0x415d65
sbb eax, eax
or eax, 1
test eax, eax
je 0x415d9e
mov ecx, str.dumpall
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415d91
test dl, dl
je 0x415d8d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415d91
add eax, 2
add ecx, 2
test dl, dl
jne 0x415d71
xor eax, eax
jmp 0x415d96
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415e48
call fcn.00406780
mov ecx, str.dumpall
lea eax, [ebp - 0x18]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415dd0
test dl, dl
je 0x415dcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415dd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x415db0
xor ebx, ebx
jmp 0x415dd5
sbb ebx, ebx
or ebx, 1
mov esi, 0x524e14
nop word [eax + eax]
push esi
call fcn.0045cdb0
mov edi, eax
add esp, 4
test edi, edi
jne 0x415df8
push esi
call fcn.0045c4a0
add esp, 4
cmp byte [esi - 0xd54], 0
jne 0x415e05
test ebx, ebx
jne 0x415e3a
movzx eax, word [esi - 4]
push eax
push dword [esi - 8]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
xor eax, eax
test edi, edi
push 0
setne al
push eax
movzx eax, byte [esi - 0xd54]
push eax
lea eax, [esi - 0x12a]
push eax
push str._20.20s__r:_u___l:_u___sq:_u____s:_u__n
call fcn.00401410
add esp, 0x1c
add esi, 0xd70
cmp esi, 0x53fc14
jl 0x415de0
mov ecx, 0x4df0d4
lea eax, [ebp - 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x415e70
test dl, dl
je 0x415e6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x415e70
add eax, 2
add ecx, 2
test dl, dl
jne 0x415e50
xor eax, eax
jmp 0x415e75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x415bc0
mov eax, dword [0x51c9d0]
cmp dword [eax], 3
jl 0x415ea6
push 0
push 0x560
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_stopping_devices_..._n
call fcn.004048b0
add esp, 0x14
call fcn.00414d30
mov eax, dword [0x51c9d0]
cmp dword [eax], 3
jl 0x415ed4
push 0
push 0x562
push str.main
call fcn.004048f0
push eax
push str._s__s:_d_all_done_n
call fcn.004048b0
add esp, 0x14
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004d3ed5
mov esp, ebp
pop ebp
ret