Function at 0x498900
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x448
mov eax, dword [0x547008]
xor eax, ebp
mov dword [esp + 0x440], eax
mov dword [ecx], 0x528968
mov eax, dword [ecx + 0x3c]
test al, 0x10
mov dword [esp + 4], ecx
jne 0x498945
xor edi, edi
mov ebx, 0
test al, 8
je 0x498993
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x14]
mov ebx, dword [eax + 0x1c]
jmp 0x498957
mov eax, dword [ecx + 0x24]
mov ebx, dword [ecx + 0x38]
cmp ebx, eax
jae 0x498954
mov dword [ecx + 0x38], eax
mov ebx, eax
mov edi, dword [ecx + 0x20]
sub ebx, edi
js 0x498f3d
cmp ebx, 0x7ffffff8
jae 0x499023
cmp ebx, 0xa
jbe 0x498993
mov esi, ebx
or esi, 7
inc esi
push esi
call fcn.004e82a5
add esp, 4
mov dword [esp + 0x40], eax
or esi, 0x80000000
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], ebx
jmp 0x49899a
lea eax, [esp + 0x40]
mov byte [eax + 0xb], bl
lea esi, [eax + ebx]
cmp eax, edi
ja 0x4989a9
cmp esi, edi
ja 0x498f27
test ebx, ebx
je 0x4989b8
push ebx
push edi
push eax
call fcn.004ebca0
add esp, 0xc
mov eax, dword [esp + 4]
lea edi, [eax + 8]
add eax, 0xc
mov dword [esp + 0x14], eax
mov byte [esi], 0
movzx eax, byte [esp + 0x4b]
test al, al
jns 0x4989d6
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
jns 0x4989e8
push dword [esp + 0x40]
call fcn.004e82d5
add esp, 4
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 4]
add ecx, edi
mov dword [esp + 8], edi
lea edi, [esp + 0x40]
push edi
call fcn.0045e820
mov ecx, edi
push 0x55a398
call fcn.00476cd0
mov ebx, eax
mov eax, dword [eax]
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
push 0xa
call esi
mov ebx, eax
mov ecx, edi
call fcn.00460800
movsx eax, bl
mov esi, dword [esp + 8]
mov ecx, esi
push eax
call fcn.00412610
mov ecx, esi
mov edi, dword [esp + 4]
call fcn.004117b0
xor eax, eax
dec eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x3c]
test al, 0x10
jne 0x498a6f
xor esi, esi
mov ebx, 0
test al, 8
je 0x498abd
mov esi, dword [edi + 0x14]
mov ebx, dword [edi + 0x1c]
jmp 0x498a81
mov eax, dword [edi + 0x24]
mov ebx, dword [edi + 0x38]
cmp ebx, eax
jae 0x498a7e
mov dword [edi + 0x38], eax
mov ebx, eax
mov esi, dword [edi + 0x20]
sub ebx, esi
js 0x498f3d
cmp ebx, 0x7ffffff8
jae 0x49902c
cmp ebx, 0xa
jbe 0x498abd
mov edi, ebx
or edi, 7
inc edi
push edi
call fcn.004e82a5
add esp, 4
mov dword [esp + 0x24], eax
or edi, 0x80000000
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
jmp 0x498ac4
lea eax, [esp + 0x24]
mov byte [eax + 0xb], bl
lea edi, [eax + ebx]
cmp eax, esi
ja 0x498ad3
cmp edi, esi
ja 0x498f27
test ebx, ebx
je 0x498ae2
push ebx
push esi
push eax
call fcn.004ebca0
add esp, 0xc
mov byte [edi], 0
lea eax, [esp + 0x24]
lea ecx, [esp + 0x18]
lea ebx, [esp + 0x40]
push ebx
push 0xffffffffffffffff
mov edi, dword [esp + 0xc]
push dword [edi + 0x90]
mov dword [esp + 0x14], eax
push eax
call fcn.0047d120
mov eax, dword [edi + 0x94]
mov ecx, dword [edi + 0x98]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
test byte [0x54a6d4], 0x19
jne 0x498fe1
cmp byte [esp + 0x23], 0
jns 0x498b3c
push dword [esp + 0x18]
call fcn.004e82d5
add esp, 4
cmp dword [edi + 4], 3
jne 0x498bd9
cmp byte [0x55be08], 0
jne 0x498bd9
mov byte [0x55be08], 1
mov eax, dword [0x55be10]
mov ecx, dword [0x54bb78]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x499035
mov ecx, edi
push ebx
call fcn.00499080
movzx eax, byte [esp + 0x4b]
test al, al
js 0x498b93
and eax, 0x7f
mov ecx, ebx
jmp 0x498b9b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
test eax, eax
js 0x498f16
test ecx, ecx
jne 0x498baf
test eax, eax
jne 0x498f05
push eax
push ecx
push dword [0x55be0c]
call fcn.004b63f0
add esp, 0xc
cmp byte [esp + 0x4b], 0
jns 0x498bd2
push dword [esp + 0x40]
call fcn.004e82d5
add esp, 4
mov byte [0x55be08], 0
mov ecx, dword [0x55bde0]
test ecx, ecx
je 0x498c27
mov eax, dword [edi + 4]
mov dword [esp + 0xc], eax
mov ebx, dword [edi + 0x90]
mov esi, dword [edi + 0x98]
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x94]
call dword [section..00cfg]
lea eax, [esp + 0x24]
push eax
push ebx
lea ebx, [esp + 0x48]
push esi
push edi
mov edi, dword [esp + 0x14]
push dword [esp + 0x1c]
call ecx
add esp, 0x14
test al, al
jne 0x498e4e
mov eax, dword [0x54b5f0]
test al, 2
je 0x498c4e
cmp byte [esp + 0x2f], 0
jns 0x498c3f
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x54b5f0]
test al, 4
jne 0x498c5d
cmp eax, 1
ja 0x498c9f
cmp dword [edi + 4], 2
jl 0x498c9f
lea esi, [esp + 0x24]
movzx ecx, byte [esi + 0xb]
mov edi, ecx
and edi, 0x7f
test cl, cl
cmovs edi, dword [esi + 4]
cmovs esi, dword [esi]
test edi, edi
je 0x498c9f
xor ebx, ebx
mov eax, edi
sub eax, ebx
lea ecx, [esi + ebx]
push eax
push ecx
push 2
call fcn.004ffb16
add esp, 0xc
test eax, eax
js 0x498c96
add ebx, eax
cmp ebx, edi
jb 0x498c79
mov eax, dword [0x54b5f0]
lea ebx, [esp + 0x40]
test al, 1
jne 0x498ec4
mov edi, dword [esp + 4]
cmp dword [edi + 4], 3
jne 0x498e4e
mov esi, 0x400
push esi
push 0xff
push ebx
call fcn.004ec220
add esp, 0xc
cmp byte [esp + 0x2f], 0
js 0x498cd6
lea eax, [esp + 0x24]
jmp 0x498cda
mov eax, dword [esp + 0x24]
push esi
push eax
push ebx
call fcn.004917d0
add esp, 0xc
push ebx
call fcn.004117a0
add esp, 4
mov eax, dword [0x55be04]
mov ecx, dword [0x54bb78]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x498fa2
mov eax, dword [0x55bdfc]
cmp eax, dword [0x55be00]
je 0x499078
mov dword [esp + 0x34], 0xffffffff
mov eax, dword [0x55be04]
mov ecx, dword [0x54bb78]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x498f6c
mov eax, dword [0x55be00]
test eax, eax
mov ecx, dword [0x55bdf8]
cmove eax, ecx
dec eax
cmp ecx, eax
jb 0x498fd8
shl eax, 2
add eax, dword [0x55bdf4]
lea esi, [esp + 0x34]
mov ecx, esi
push eax
call fcn.0049bfa0
mov eax, dword [esi]
test eax, eax
je 0x498e45
cmp byte [esp + 0x2f], 0
mov dword [esp + 8], eax
jns 0x498d92
mov edi, dword [esp + 0x24]
jmp 0x498d96
lea edi, [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ebx, edi
add ebx, esi
je 0x498f5b
push ebx
call fcn.00503950
add esp, 4
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x90]
add edi, ecx
sub esi, ecx
js 0x498f16
mov edx, esi
je 0x498dcd
test edi, edi
je 0x498f05
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 0x94]
mov dword [esp + 0xc], esi
mov ecx, dword [ecx + 0x98]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], eax
xor eax, eax
inc eax
mov esi, dword [esp + 8]
lock xadd dword [esi], eax
test eax, eax
jle 0x498fde
cmp eax, 0x7fffffff
je 0x498fdb
mov edi, ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
call dword [section..00cfg]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x1c]
push eax
push edi
push dword [esp + 0x18]
push esi
call ecx
add esp, 0x14
lock dec dword [esi]
mov edi, dword [esp + 4]
jne 0x498e45
push esi
call fcn.0049bec0
add esp, 4
lea ecx, [esp + 0x34]
call fcn.0049bfd0
cmp byte [esp + 0x2f], 0
jns 0x498e61
push dword [esp + 0x24]
call fcn.004e82d5
add esp, 4
lea ecx, [edi + 0x9c]
call fcn.004bf1e0
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
mov dword [edi + eax + 8], 0x528e0c
mov dword [edi + 0xc], 0x528e10
cmp byte [edi + 0x37], 0
jns 0x498e92
push dword [edi + 0x2c]
call fcn.004e82d5
add esp, 4
add edi, 0x40
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.00411410
mov ecx, esi
call fcn.004117a0
mov ecx, edi
call fcn.00411400
mov ecx, dword [esp + 0x440]
xor ecx, ebp
call fcn.004e8be6
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00518130
test al, al
je 0x498ca7
lea eax, [esp + 0x24]
movzx ecx, byte [eax + 0xb]
mov edx, ecx
and edx, 0x7f
test cl, cl
cmovs edx, dword [eax + 4]
mov dword [esp + 0x40], 0xffffffff
cmovs eax, dword [eax]
push 0
push ebx
push edx
push eax
push dword [0x55bdec]
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x498ca7
push str.string_view::string_view__CharT___size_t_:_received_nullptr
push str.__len__0____s___nullptr
push 0x13c
jmp 0x498f4c
push str.string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type
push str.__len___static_cast_size_type__numeric_limits_difference_type_::max___
push 0x13a
jmp 0x498f4c
push str.char_traits::copy_overlapped_range
push str.__s2_____s1____s2_____s1____n
push 0xf3
push str....._third_partylibc_srcinclude__stringchar_traits.h
jmp 0x498f51
push str.std::string_view::string_view_iterator__sentinel__received_invalid_range
push str.___end_____begin____0
push 0x147
push str....._third_partylibc_srcinclude_string_view
push str._s:_d:_assertion__s_failed:__s_n
call fcn.00457520
push str.null_pointer_passed_to_non_null_argument_of_char_traits_..._::length
push str.__s___nullptr
push 0x109
jmp 0x498f4c
push 0x55be04
call fcn.004e8347
add esp, 4
cmp dword [0x55be04], 0xffffffff
jne 0x498d49
xorps xmm0, xmm0
movups xmmword [0x55bdf4], xmm0
push 0x55be04
call fcn.004e83bd
add esp, 4
jmp 0x498d49
push 0x55be04
call fcn.004e8347
add esp, 4
cmp dword [0x55be04], 0xffffffff
jne 0x498d0f
xorps xmm0, xmm0
movups xmmword [0x55bdf4], xmm0
push 0x55be04
call fcn.004e83bd
add esp, 4
jmp 0x498d0f
int3
int3
int3
lea eax, [esp + 0x30]
lea edx, [esp + 0x40]
mov dword [edx], eax
lea eax, [esp + 0x34]
mov dword [edx + 4], eax
lea eax, [esp + 0x18]
mov dword [edx + 8], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
sub esp, 8
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
mov ecx, str.LogMessage
call fcn.004995b0
add esp, 8
jmp 0x498b29
lea ecx, [esp + 0x40]
call fcn.004148d0
lea ecx, [esp + 0x24]
call fcn.004148d0
push 0x55be10
call fcn.004e8347
add esp, 4
cmp dword [0x55be10], 0xffffffff
jne 0x498b7b
push 0x400
push str.LOG_FATAL
call fcn.004b63b0
add esp, 8
mov dword [0x55be0c], eax
push 0x55be10
call fcn.004e83bd
add esp, 4
jmp 0x498b7b
int3