Function at 0x407960
Capabilities:
Check if file exists

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4897e5
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x900
mov eax, dword [0x4b0070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x8f4], 0
mov dword [ebp - 4], 2
push dword [eax + 0x388]
lea eax, [ebp - 0x418]
push str._slauncherGameList.txt
push 0x400
push eax
call fcn.0040edc0
add esp, 0x10
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
or edi, 0xffffffff
test eax, eax
je 0x407b7f
lea ecx, [ebp - 0x904]
call fcn.004596f0
push str.LogCache
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8f0]
call fcn.0040ad50
add esp, 4
mov byte [ebp - 4], 5
mov eax, edi
mov edx, dword [ebp - 0x904]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407a36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x8f0]
mov ecx, 1
sub ecx, dword [edx - 4]
mov eax, dword [edx - 8]
or eax, ecx
jge 0x407a5e
push 0
lea ecx, [ebp - 0x8f0]
call fcn.00402190
mov edx, dword [ebp - 0x8f0]
sub esp, 0x18
mov ecx, edx
mov esi, esp
xorps xmm0, xmm0
lea eax, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 0x8cc], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407a82
sub ecx, dword [ebp - 0x8cc]
sar ecx, 1
push ecx
push edx
mov ecx, esi
call fcn.0040eeb0
call fcn.00405aa0
mov eax, dword [ebx + 0xc]
add esp, 0x18
cmp dword [eax - 0xc], 0
jl 0x407cdb
push str._device
push eax
call fcn.00469064
add esp, 8
test eax, eax
je 0x407cdb
sub eax, dword [ebx + 0xc]
sar eax, 1
cmp eax, 0xffffffff
jle 0x407cdb
push 0x49a83c
lea edx, [ebp - 0x8f0]
lea ecx, [ebp - 0x8cc]
call fcn.0040ad50
add esp, 4
lea ecx, [ebx + 0xc]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x8d0]
call fcn.0040aee0
add esp, 4
mov byte [ebp - 4], 8
mov eax, edi
mov edx, dword [ebp - 0x8cc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407b29
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x8d0]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x407bfa
mov byte [ebp - 4], 5
mov eax, edi
mov edx, dword [ebp - 0x8d0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407b5e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, edi
mov edx, dword [ebp - 0x8f0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407b7f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov eax, edi
mov edx, dword [ebx + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407b9d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, edi
mov edx, dword [ebx + 0xc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407bbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebx + 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x407bda
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046780a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
sub esp, 0xc
lea ecx, [ebp - 0xc8]
push dword [ebp - 0x8d0]
call fcn.00409b80
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 9
call fcn.0040b910
test eax, eax
jne 0x407c4a
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc8]
push 0
add ecx, dword [eax + 4]
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040e730
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ofstream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xcc], eax
lea ecx, [ebp - 0xc4]
call fcn.0040a830
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc8], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0xcc], eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xa
push eax
mov dword [ebp - 0x60], vtable.std::ios_base.0
call fcn.00466937
mov byte [ebp - 4], 5
add esp, 4
mov edx, dword [ebp - 0x8d0]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x407cdb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00401cf0
mov ecx, eax
test ecx, ecx
je 0x409af7
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x8ec], eax
push str.http:__y2.524399game.com_datacf_api_push_projectidMuzBIhzZtidMuTBIh0ZNrgLO0O0OBO0O0Omosid4pt0
lea ecx, [ebp - 0x8ec]
mov byte [ebp - 4], 0xb
call fcn.0040c0c0
test al, al
jne 0x407d1e
push ecx
lea ecx, [ebp - 0x8ec]
call fcn.0040c1a0
and dword [ebp - 0x8e0], 0xfffffe00
mov dword [ebp - 0x8dc], 0
lea eax, [ebp - 0x910]
mov byte [ebp - 4], 0xe
push eax
call fcn.00471284
add esp, 4
lea eax, [ebp - 0x518]
push dword [ebp - 0x90c]
push dword [ebp - 0x910]
push 0x49a5b4
push eax
call fcn.0040ec80
xorps xmm0, xmm0
mov dword [ebp - 0x570], 0
lea ecx, [ebp - 0x518]
mov dword [ebp - 0x56c], 0
add esp, 0x10
lea edx, [ecx + 1]
movups xmmword [ebp - 0x580], xmm0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407d90
sub ecx, edx
lea eax, [ebp - 0x518]
push ecx
push eax
lea ecx, [ebp - 0x580]
call fcn.0040eca0
xorps xmm0, xmm0
mov byte [ebp - 4], 0xf
push 0x30
movups xmmword [ebp - 0x610], xmm0
call fcn.00467c71
movups xmm0, xmmword [str.d98210776b8709cc3f9f10bac361df9f]
add esp, 4
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x600], 0x20
movups xmmword [eax], xmm0
mov dword [ebp - 0x5fc], 0x2f
movups xmm0, xmmword [0x49a5c8]
movups xmmword [eax + 0x10], xmm0
mov byte [eax + 0x20], 0
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x6ac]
push 3
push dword [ebx + 8]
lea ecx, [ebp - 0x6b0]
mov dword [ebp - 0x6b0], eax
call fcn.0040bef0
mov byte [ebp - 4], 0x11
xorps xmm0, xmm0
mov edx, dword [ebp - 0x6b0]
mov ecx, edx
movups xmmword [ebp - 0x5f8], xmm0
mov dword [ebp - 0x5e8], 0
mov dword [ebp - 0x5e4], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407e44
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x5f8]
call fcn.0040eca0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x6ac]
mov eax, dword [ebp - 0x6b0]
cmp eax, ecx
je 0x407e77
push eax
call fcn.00472e3f
add esp, 4
push 3
push dword [ebx + 0xc]
lea eax, [ebp - 0x734]
lea ecx, [ebp - 0x738]
mov dword [ebp - 0x738], eax
call fcn.0040bef0
mov byte [ebp - 4], 0x14
xorps xmm0, xmm0
mov edx, dword [ebp - 0x738]
mov ecx, edx
movups xmmword [ebp - 0x5e0], xmm0
mov dword [ebp - 0x5d0], 0
mov dword [ebp - 0x5cc], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407ec0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x5e0]
call fcn.0040eca0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x734]
mov eax, dword [ebp - 0x738]
cmp eax, ecx
je 0x407ef3
push eax
call fcn.00472e3f
add esp, 4
push 3
push dword [ebx + 0x10]
lea eax, [ebp - 0x7bc]
lea ecx, [ebp - 0x7c0]
mov dword [ebp - 0x7c0], eax
call fcn.0040bef0
mov byte [ebp - 4], 0x17
xorps xmm0, xmm0
mov edx, dword [ebp - 0x7c0]
mov ecx, edx
movups xmmword [ebp - 0x5c8], xmm0
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5b4], 0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407f40
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x5c8]
call fcn.0040eca0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x7bc]
mov eax, dword [ebp - 0x7c0]
cmp eax, ecx
je 0x407f73
push eax
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
lea ecx, [ebp - 0x580]
mov esi, dword [ebp - 0x570]
and eax, 0xffffff04
or eax, 0x104
mov dword [ebp - 0x51c], 0
cmp dword [ebp - 0x56c], 0x10
mov dword [ebp - 0x8f8], eax
cmovae ecx, dword [ebp - 0x580]
setae byte [ebp - 0x8d1]
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x8cc], ecx
cmp esi, 0xffffffff
jne 0x407fd9
mov esi, ecx
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x407fd0
sub esi, ecx
mov eax, SysReAllocString
cmp esi, 0x7fffffff
cmovae esi, eax
lea eax, [esi + 1]
push eax
call fcn.004734a8
mov edi, eax
add esp, 4
test edi, edi
je 0x409b01
push esi
push dword [ebp - 0x8cc]
push edi
call fcn.004696f0
add esp, 0xc
mov byte [edi + esi], 0
mov dword [ebp - 0x528], edi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x1a
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.rectime
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x8f8]
movsx eax, cl
sub eax, 4
je 0x40807e
sub eax, 2
je 0x40805b
sub eax, 1
jne 0x40808f
mov eax, dword [edi]
mov ecx, edi
push dword [eax + 4]
push edi
call fcn.00419c00
push 0x28
push dword [edi]
call fcn.00467ca1
push 8
push edi
call fcn.00467ca1
add esp, 0x10
jmp 0x40808f
test ecx, 0x100
je 0x40808f
push edi
call fcn.00472e3f
add esp, 4
cmp dword [ebp - 0x5e4], 0x10
lea eax, [ebp - 0x5f8]
lea ecx, [ebp - 0x528]
cmovae eax, dword [ebp - 0x5f8]
push eax
call fcn.00418ec0
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x1c
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.event
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 0x19
call fcn.004191a0
cmp dword [ebp - 0x5cc], 0x10
lea eax, [ebp - 0x5e0]
lea ecx, [ebp - 0x528]
cmovae eax, dword [ebp - 0x5e0]
push eax
call fcn.00418ec0
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x1d
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.eventname
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 0x19
call fcn.004191a0
cmp dword [ebp - 0x5b4], 0x10
lea eax, [ebp - 0x5c8]
lea ecx, [ebp - 0x528]
cmovae eax, dword [ebp - 0x5c8]
push eax
call fcn.00418ec0
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x1e
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.eventvalue
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 0x19
call fcn.004191a0
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x1f
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a604
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x40823e
sub eax, 2
je 0x40821b
sub eax, 1
jne 0x408247
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408247
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x21
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a608
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x4082f1
sub eax, 2
je 0x4082ce
sub eax, 1
jne 0x4082fa
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x4082fa
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 2
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov al, byte [0x49a610]
mov byte [esi], al
mov byte [esi + 1], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x23
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a60c
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x4083ac
sub eax, 2
je 0x408389
sub eax, 1
jne 0x4083b5
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x4083b5
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 2
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov al, byte [0x49a610]
mov byte [esi], al
mov byte [esi + 1], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x25
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a614
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408467
sub eax, 2
je 0x408444
sub eax, 1
jne 0x408470
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408470
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 2
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov al, byte [0x49a610]
mov byte [esi], al
mov byte [esi + 1], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x27
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a618
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408522
sub eax, 2
je 0x4084ff
sub eax, 1
jne 0x40852b
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x40852b
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 2
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov al, byte [0x49a624]
mov byte [esi], al
mov byte [esi + 1], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x29
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.osid
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x4085dd
sub eax, 2
je 0x4085ba
sub eax, 1
jne 0x4085e6
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x4085e6
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x2b
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.username
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408690
sub eax, 2
je 0x40866d
sub eax, 1
jne 0x408699
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408699
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x2d
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.roleid
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408743
sub eax, 2
je 0x408720
sub eax, 1
jne 0x40874c
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x40874c
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x2f
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.rolename
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x4087f6
sub eax, 2
je 0x4087d3
sub eax, 1
jne 0x4087ff
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x4087ff
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 0x11
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
movups xmm0, xmmword [str.1675911239616430]
mov dword [ebp - 0x528], esi
movups xmmword [esi], xmm0
mov byte [esi + 0x10], 0
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x31
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.gameid
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x4088b4
sub eax, 2
je 0x408891
sub eax, 1
jne 0x4088bd
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x4088bd
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x33
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.server
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408967
sub eax, 2
je 0x408944
sub eax, 1
jne 0x408970
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408970
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 8
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov eax, dword [str.windows]
mov dword [esi], eax
mov ax, word [0x49a674]
mov word [esi + 4], ax
mov al, byte [0x49a676]
mov byte [esi + 6], al
mov byte [esi + 7], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x35
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a66c
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408a34
sub eax, 2
je 0x408a11
sub eax, 1
jne 0x408a3d
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408a3d
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x37
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.osver
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408ae7
sub eax, 2
je 0x408ac4
sub eax, 1
jne 0x408af0
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408af0
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x39
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.appver
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408b9a
sub eax, 2
je 0x408b77
sub eax, 1
jne 0x408ba3
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408ba3
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x3b
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.sdkver
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408c4d
sub eax, 2
je 0x408c2a
sub eax, 1
jne 0x408c56
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408c56
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x3d
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a690
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408d00
sub eax, 2
je 0x408cdd
sub eax, 1
jne 0x408d09
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408d09
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 3
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov ax, word [0x49a69c]
mov word [esi], ax
mov byte [esi + 2], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x3f
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.devtype
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408dbd
sub eax, 2
je 0x408d9a
sub eax, 1
jne 0x408dc6
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408dc6
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x41
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push str.screen
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408e70
sub eax, 2
je 0x408e4d
sub eax, 1
jne 0x408e79
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408e79
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x43
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a6a8
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408f23
sub eax, 2
je 0x408f00
sub eax, 1
jne 0x408f2c
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408f2c
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x45
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a6ac
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x8cc]
movzx eax, al
sub eax, 4
je 0x408fd6
sub eax, 2
je 0x408fb3
sub eax, 1
jne 0x408fdf
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x408fdf
push esi
call fcn.00472e3f
add esp, 4
mov eax, dword [ebp - 0x520]
and eax, 0xffffff04
mov dword [ebp - 0x51c], 0
or eax, 0x104
push 1
mov dword [ebp - 0x8cc], eax
mov dword [ebp - 0x520], eax
call fcn.004734a8
mov esi, eax
add esp, 4
test esi, esi
je 0x409b01
mov byte [esi], 0
mov dword [ebp - 0x528], esi
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x47
push eax
sub esp, 8
lea ecx, [ebp - 0x8e8]
push 0x49a6b0
call fcn.00419660
add esp, 4
mov ecx, eax
call fcn.00419270
mov ecx, dword [ebp - 0x8cc]
movzx eax, cl
sub eax, 4
je 0x409085
sub eax, 2
je 0x409062
sub eax, 1
jne 0x40908e
mov eax, dword [esi]
mov ecx, esi
push dword [eax + 4]
push esi
call fcn.00419c00
push 0x28
push dword [esi]
call fcn.00467ca1
push 8
push esi
call fcn.00467ca1
add esp, 0x10
jmp 0x40908e
push esi
call fcn.00472e3f
add esp, 4
xorps xmm0, xmm0
mov dword [ebp - method.Json::FastWriter.virtual_0], vtable.Json::FastWriter.0
movups xmmword [ebp - 0x564], xmm0
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x550], 0xf
mov byte [ebp - 0x564], 0
mov word [ebp - 0x54c], 0
push 0
push 0x49a924
lea ecx, [ebp - 0x564]
mov byte [ebp - 4], 0x49
call fcn.00417c40
lea eax, [ebp - 0x8e8]
push eax
lea ecx, [ebp - 0x568]
call fcn.00414ba0
mov esi, dword [ebp - 0x550]
lea ecx, [ebp - 0x564]
mov edx, dword [ebp - 0x554]
mov eax, esi
sub eax, edx
cmp eax, 1
jb 0x40912b
cmp esi, 0x10
lea eax, [edx + 1]
mov dword [ebp - 0x554], eax
cmovae ecx, dword [ebp - 0x564]
mov al, byte [0x49b6c8]
mov byte [ecx + edx], al
mov byte [ecx + edx + 1], 0
jmp 0x409146
push 1
push 0x49b6c8
mov byte [ebp - 0x8cc], 0
push dword [ebp - 0x8cc]
push 1
call fcn.0040dff0
lea eax, [ebp - 0x564]
push eax
lea ecx, [ebp - 0x598]
call fcn.0040eb90
mov byte [ebp - 4], 0x4a
lea eax, [ebp - 0x598]
cmp dword [ebp - 0x584], 0x10
mov edi, 1
mov esi, dword [ebp - 0x588]
jb 0x409185
mov ecx, dword [ebp - 0x598]
lea edx, [esi - 1]
add edx, ecx
sub edx, ecx
jmp 0x409194
lea edx, [eax - 1]
lea eax, [ebp - 0x598]
add edx, esi
sub edx, eax
mov ecx, eax
mov eax, esi
sub eax, edx
cmp eax, 1
cmovb edi, eax
add ecx, edx
sub esi, edi
mov eax, esi
sub eax, edx
inc eax
push eax
lea eax, [ecx + edi]
push eax
push ecx
call fcn.004696f0
add esp, 0xc
mov dword [ebp - 0x588], esi
lea eax, [ebp - 0x598]
lea ecx, [ebp - 0x5b0]
push eax
call fcn.0040eb90
mov byte [ebp - 4], 0x4b
mov ecx, dword [ebp - 0x570]
cmp ecx, 0x7fffffdf
ja 0x409b22
cmp byte [ebp - 0x8d1], 0
lea eax, [ebp - 0x580]
push ecx
cmovne eax, dword [ebp - 0x580]
push eax
push 0x20
push dword [ebp - 0x610]
push ecx
push dword [ebp - 0x8fc]
lea ecx, [ebp - 0x548]
call fcn.0040d320
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x5b0]
cmp dword [ebp - 0x59c], 0x10
mov esi, dword [ebp - 0x534]
mov eax, esi
cmovae ecx, dword [ebp - 0x5b0]
mov edx, dword [ebp - 0x538]
sub eax, edx
mov edi, dword [ebp - 0x5a0]
push edi
push ecx
cmp edi, eax
ja 0x409278
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x548]
cmovae eax, dword [ebp - 0x548]
lea esi, [eax + edx]
push esi
call fcn.004696f0
add esp, 0xc
mov byte [esi + edi], 0
lea eax, [ebp - 0x548]
jmp 0x409291
mov byte [ebp - 0x8cc], 0
lea ecx, [ebp - 0x548]
push dword [ebp - 0x8cc]
push edi
call fcn.0040dff0
mov dword [ebp - 0x520], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x530], xmm0
mov dword [ebp - 0x51c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x530], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x520], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x4d
lea esi, [ebp - 0x530]
cmp dword [ebp - 0x51c], 0x10
cmovae esi, dword [ebp - 0x530]
call fcn.00401cf0
mov ecx, eax
test ecx, ecx
je 0x409b27
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x8d0], eax
push esi
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 0x4e
call fcn.0040c0c0
test al, al
jne 0x40932e
push esi
lea ecx, [ebp - 0x8d0]
call fcn.0040b0f0
mov byte [ebp - 4], 0x50
mov ecx, dword [ebp - 0x51c]
cmp ecx, 0x10
jb 0x40936c
mov edx, dword [ebp - 0x530]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409362
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b31
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov dword [ebp - 0x520], 0
mov dword [ebp - 0x51c], 0xf
mov byte [ebp - 0x530], 0
mov byte [ebp - 4], 0x51
mov ecx, dword [ebp - 0x534]
cmp ecx, 0x10
jb 0x4093c5
mov edx, dword [ebp - 0x548]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4093bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b31
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov dword [ebp - method.CMd5A.virtual_0], vtable.CMd5A.0
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x900]
push dword [ebp - 0x8d0]
call fcn.0045c0f0
push eax
lea ecx, [ebp - 0x8d0]
call fcn.0040b0f0
mov ecx, dword [ebp - 0x570]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 3
jb 0x409b36
cmp dword [ebp - 0x56c], 0x10
lea eax, [ebp - 0x580]
push ecx
cmovae eax, dword [ebp - 0x580]
push eax
push 3
push 0x49a6b4
push ecx
push dword [ebp - 0x8fc]
lea ecx, [ebp - 0x530]
call fcn.0040d320
mov dword [ebp - 0x8f4], 0xf
mov byte [ebp - 4], 0x53
lea edx, [ebp - 0x530]
cmp dword [ebp - 0x51c], 0x10
jb 0x409460
mov edx, dword [ebp - 0x530]
test edx, edx
jne 0x409460
xor ecx, ecx
jmp 0x40946e
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409465
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x8ec]
call fcn.0040c700
mov byte [ebp - 4], 0x52
mov ecx, dword [ebp - 0x51c]
cmp ecx, 0x10
jb 0x4094b9
mov edx, dword [ebp - 0x530]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4094af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b3b
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x54
mov edi, dword [ebp - 0x8d0]
mov ecx, dword [edi - 0x10]
lea eax, [edi - 0x10]
mov dword [ebp - 0x8fc], eax
test ecx, ecx
je 0x4094e0
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
test ecx, ecx
jne 0x4094f8
call fcn.00401cf0
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
mov ecx, eax
test ecx, ecx
je 0x409b40
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x8f4], 0x1f
lea esi, [eax + 0x10]
mov eax, dword [edi - 0xc]
mov dword [ebp - 0x8f8], esi
mov dword [ebp - 0x8cc], eax
lea ecx, [eax + 6]
test ecx, ecx
js 0x409aed
mov eax, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub eax, ecx
or eax, edx
jge 0x409549
push ecx
lea ecx, [ebp - 0x8f8]
call fcn.0040c7e0
mov esi, dword [ebp - 0x8f8]
test esi, esi
jne 0x40955f
call fcn.0046cadd
mov dword [eax], 0x16
call fcn.0046c9df
jmp 0x409570
mov eax, dword [str.sign]
mov dword [esi], eax
mov ax, word [0x49a6bc]
mov word [esi + 4], ax
mov eax, dword [ebp - 0x8cc]
lea ecx, [esi + 6]
test eax, eax
je 0x40959e
test ecx, ecx
jne 0x409593
call fcn.0046cadd
mov dword [eax], 0x16
call fcn.0046c9df
jmp 0x40959e
push eax
push edi
push ecx
call fcn.004696f0
add esp, 0xc
mov eax, dword [ebp - 0x8cc]
add eax, 6
cmp eax, dword [esi - 8]
jg 0x409aed
mov dword [esi - 0xc], eax
lea ecx, [ebp - 0x8ec]
mov byte [eax + esi], 0
push dword [esi - 0xc]
push esi
call fcn.0040c700
or edi, 0xffffffff
mov byte [ebp - 4], 0x52
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4095e4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x59c], 0x10
lea edx, [ebp - 0x5b0]
xorps xmm0, xmm0
mov dword [ebp - 0x520], 0
cmovae edx, dword [ebp - 0x5b0]
mov ecx, edx
mov dword [ebp - 0x51c], 0
movups xmmword [ebp - 0x530], xmm0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409620
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x530]
call fcn.0040eca0
lea eax, [ebp - 0x530]
mov byte [ebp - 4], 0x55
push eax
lea eax, [ebp - 0x628]
push eax
call fcn.00407710
push eax
mov edx, str.data
mov byte [ebp - 4], 0x56
lea ecx, [ebp - 0x548]
call fcn.0040cd20
add esp, 4
mov edx, eax
mov byte [ebp - 4], 0x57
cmp dword [edx + 0x14], 0x10
jb 0x409673
mov edx, dword [edx]
test edx, edx
jne 0x40967b
xor ecx, ecx
jmp 0x409689
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409680
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x8ec]
call fcn.0040c700
mov byte [ebp - 4], 0x56
mov ecx, dword [ebp - 0x534]
cmp ecx, 0x10
jb 0x4096d4
mov edx, dword [ebp - 0x548]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4096ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b4a
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x55
mov ecx, dword [ebp - 0x614]
mov dword [ebp - 0x538], 0
mov dword [ebp - 0x534], 0xf
mov byte [ebp - 0x548], 0
cmp ecx, 0x10
jb 0x40972d
mov edx, dword [ebp - 0x628]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409723
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b4a
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x52
mov ecx, dword [ebp - 0x51c]
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x614], 0xf
mov byte [ebp - 0x628], 0
cmp ecx, 0x10
jb 0x409786
mov edx, dword [ebp - 0x530]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40977c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b4a
push ecx
push edx
call fcn.00467ca1
add esp, 8
call fcn.00401cf0
mov ecx, eax
test ecx, ecx
je 0x409b4f
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x8f4], eax
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x8c4]
mov esi, dword [ebp - 0x8ec]
lea ecx, [ebp - 0x8c8]
push 3
push esi
mov dword [ebp - 0x8c8], eax
call fcn.0040b5f0
mov byte [ebp - 4], 0x59
mov edx, dword [ebp - 0x8c8]
test edx, edx
jne 0x4097db
xor ecx, ecx
jmp 0x4097f9
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x8cc], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4097e6
sub ecx, dword [ebp - 0x8cc]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x8f4]
call fcn.00402220
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x8c4]
mov eax, dword [ebp - 0x8c8]
cmp eax, ecx
je 0x409823
push eax
call fcn.00472e3f
add esp, 4
mov ecx, dword [ebp - 0x908]
lea eax, [ebp - 0x8f4]
sub esp, 8
add ecx, 0x320
push 0
push eax
call fcn.00465710
mov byte [ebp - 4], 0x52
mov eax, edi
mov edx, dword [ebp - 0x8f4]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409861
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x8fc]
mov eax, edi
mov dword [ebp - method.CMd5A.virtual_0], vtable.CMd5A.0
mov byte [ebp - 4], 0x4b
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409889
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4a
mov ecx, dword [ebp - 0x59c]
cmp ecx, 0x10
jb 0x4098c7
mov edx, dword [ebp - 0x5b0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4098bd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x49
mov ecx, dword [ebp - 0x584]
cmp ecx, 0x10
jb 0x409905
mov edx, dword [ebp - 0x598]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4098fb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x550]
mov dword [ebp - 0x588], 0
mov dword [ebp - 0x584], 0xf
mov byte [ebp - 0x598], 0
mov dword [ebp - method.Json::FastWriter.virtual_0], vtable.Json::FastWriter.0
cmp ecx, 0x10
jb 0x409968
mov edx, dword [ebp - 0x564]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40995e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x5b4]
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x550], 0xf
mov byte [ebp - 0x564], 0
mov dword [ebp - method.Json::Writer.virtual_0], vtable.Json::Writer.0
cmp ecx, 0x10
jb 0x4099cb
mov edx, dword [ebp - 0x5c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4099c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x5cc]
cmp ecx, 0x10
jb 0x409a09
mov edx, dword [ebp - 0x5e0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4099ff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x5e4]
cmp ecx, 0x10
jb 0x409a47
mov edx, dword [ebp - 0x5f8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409a3d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x5fc]
cmp ecx, 0x10
jb 0x409a85
mov edx, dword [ebp - 0x610]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409a7b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x56c]
cmp ecx, 0x10
jb 0x409ac3
mov edx, dword [ebp - 0x580]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409ab9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409b59
push ecx
push edx
call fcn.00467ca1
add esp, 8
lea ecx, [ebp - 0x8e8]
call fcn.004191a0
mov byte [ebp - 4], 5
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x407b5e
mov ecx, dword [esi]
push esi
jmp 0x407b59
push 0x80070057
call fcn.00402200
push 0x80004005
call fcn.00402200
push str.Failed_to_allocate_string_value_buffer
lea ecx, [ebp - 0x53c]
call fcn.00418c50
push 0x4adb5c
lea eax, [ebp - 0x53c]
push eax
call fcn.0046950e
call fcn.0040ef40
push 0x80004005
call fcn.00402200
call fcn.0046c9ef
call fcn.0040ef40
call fcn.0046c9ef
push 0x80004005
call fcn.00402200
call fcn.0046c9ef
push 0x80004005
call fcn.00402200
call fcn.0046c9ef
int3