Function at 0x508bed
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f1c6c
mov eax, dword fs:[0]
push eax
sub esp, 0x464
mov eax, dword [0x648d30]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x3c0], edi
mov ecx, 0x65c79b
call fcn.004a73a0
mov eax, dword [edi + 4]
push dword [edi + 0x338]
mov ecx, dword [edi + 8]
push dword [eax + 0x2c]
push dword [eax + 0x28]
mov edx, dword [ecx]
push 0
push 0
call dword [edx + 0x7c]
mov ecx, dword [edi + 0x74]
mov eax, dword [edi + 8]
sub ecx, dword [edi + 0x38]
mov dword [eax + 0x1d3c], ecx
lea ecx, [ebp - 0x3bc]
call fcn.004a7468
mov ecx, dword [edi + 0x1c]
xor edx, edx
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x3f4], edx
cmp ax, word [ecx]
jge 0x508bc3
imul esi, edx, 0x68
lea eax, [ebp - 0x3bc]
mov dword [ebp - 0x3e4], 0
add esi, 4
add esi, ecx
cmp eax, esi
je 0x507487
cmp dword [esi + 0x18], 0x10
lea eax, [esi + 4]
jb 0x507478
mov eax, dword [eax]
push dword [esi + 0x14]
lea ecx, [ebp - 0x3bc]
push eax
call fcn.004a8039
mov cl, byte [esi + 0x1c]
mov byte [ebp - 0x3a0], cl
movzx eax, byte [esi + 0x1d]
mov byte [ebp - 0x39f], al
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x39c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x398], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x394], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x390], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x38c], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x388], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x384], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x380], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x37c], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x378], eax
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x374], eax
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x370], eax
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x36c], eax
movzx eax, byte [esi + 0x54]
mov byte [ebp - 0x368], al
movzx eax, byte [esi + 0x55]
mov byte [ebp - 0x367], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x364], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x360], eax
movzx eax, byte [esi + 0x60]
mov byte [ebp - 0x35c], al
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x358], eax
test cl, cl
je 0x507c54
mov eax, dword [edi + 8]
mov byte [eax + 0x1d58], 1
mov eax, dword [edi + 4]
push dword [eax + 0x2c]
mov eax, dword [edi + 8]
push dword [ebp - 0x364]
push dword [eax + 0x1d50]
call fcn.004a799a
mov eax, dword [edi + 4]
push dword [eax + 0x28]
mov eax, dword [edi + 8]
push dword [ebp - 0x360]
push dword [eax + 0x1d54]
call fcn.004a799a
add esp, 0x18
cmp dword [ebp - 0x39c], 1
jle 0x507ae3
mov esi, dword [ebp - 0x398]
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x3e8], 0
test esi, esi
jle 0x507c54
xor ecx, ecx
mov dword [ebp - 0x3ec], ecx
nop dword [eax + eax]
mov eax, dword [ebp - 0x390]
xor edx, edx
mov edi, dword [ebp - 0x3ec]
mov dword [ebp - 0x3c4], edx
mov ecx, dword [ecx + eax]
cmp dword [edi + eax + 4], edx
mov edi, dword [ebp - 0x3c0]
jle 0x507aa4
lea eax, [ecx + ecx*2]
shl eax, 2
mov dword [ebp - 0x428], eax
mov esi, dword [ebp - 0x3ec]
mov ecx, 0x10
mov eax, dword [ebp - 0x390]
mov eax, dword [esi + eax + 4]
mov esi, dword [ebp - 0x3e4]
sub eax, edx
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [ebp - 0x394]
add esi, 0x10
add esi, edx
and esi, 0xfffffff0
sub esi, edx
mov edx, dword [ebp - 0x428]
sub esi, dword [ebp - 0x3e4]
cmp ecx, esi
cmovle esi, ecx
mov ecx, dword [edi + 0x64]
mov dword [ebp - 0x3cc], esi
mov esi, edx
mov edx, dword [edx + eax]
mov dword [ebp - 0x3d0], ecx
mov eax, dword [esi + eax + 4]
mov esi, dword [ebp - 0x3cc]
imul eax, ecx
cmp byte [ebp - 0x368], 0
je 0x507676
imul edx, dword [edi + 0x4c]
jmp 0x50767a
imul edx, dword [edi + 0x34]
mov ecx, dword [ebp - 0x3c4]
add edx, eax
add ecx, dword [ebp - 0x3e4]
mov edi, dword [ebp - 0x3c0]
sar edx, 8
cmp byte [ebp - 0x367], 0
je 0x5076bb
mov eax, dword [edi + 0x50]
mov esi, dword [ebp - 0x3d0]
imul esi, dword [ebp - 0x380]
imul eax, dword [ebp - 0x384]
add eax, esi
mov esi, dword [ebp - 0x3cc]
jmp 0x5076e4
mov eax, dword [ebp - 0x3d0]
imul eax, dword [ebp - 0x380]
mov dword [ebp - 0x3d0], eax
mov eax, dword [edi + 0x38]
imul eax, dword [ebp - 0x384]
add dword [ebp - 0x3d0], eax
mov eax, dword [ebp - 0x3d0]
sub edx, dword [ebp - 0x370]
sar eax, 8
sub ecx, eax
mov dword [ebp - 0x42c], edx
sub ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x400], ecx
lea eax, [esi + ecx]
test eax, eax
jle 0x507a72
mov eax, dword [edi + 4]
cmp ecx, dword [eax + 0x2c]
jge 0x507a72
mov ecx, dword [ebp - 0x38c]
mov eax, edx
neg eax
shl ecx, 4
cdq
idiv ecx
mov dword [ebp - 0x3f0], ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x42c]
mov dword [ebp - 0x43c], edx
mov edx, ecx
sar edx, 4
mov eax, dword [eax + 0x28]
dec edx
add eax, ecx
mov dword [ebp - 0x3d4], edx
sar eax, 4
add eax, 2
cmp edx, eax
jge 0x507a72
mov edi, dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x3c4]
mov esi, dword [ebp - 0x3cc]
lea eax, [eax + edi]
mov edi, dword [ebp - 0x3c0]
sar eax, 4
mov dword [ebp - 0x3c8], eax
mov eax, edx
shl eax, 4
sub eax, ecx
add eax, 8
mov dword [ebp - 0x3f8], eax
nop word [eax + eax]
mov eax, dword [ebp - 0x3c8]
mov ecx, dword [ebp - 0x388]
cdq
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x3d4]
mov ecx, edx
cdq
idiv dword [ebp - 0x38c]
imul ecx, dword [ebp - 0x38c]
add edx, dword [ebp - 0x38c]
mov eax, edx
cdq
idiv dword [ebp - 0x38c]
mov eax, dword [ebp - 0x37c]
add ecx, edx
movsx ecx, word [eax + ecx*2]
mov edx, ecx
and ecx, 0x3ff
sar edx, 0xa
and edx, 3
mov dword [ebp - 0x438], ecx
mov dword [ebp - 0x3dc], edx
cmp ecx, dword [0x64cce4]
je 0x507a44
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 0x240c]
movsx eax, word [eax + ecx*2]
mov dword [ebp - 0x3d0], eax
movzx eax, al
mov dword [ebp - 0x3fc], eax
cmp eax, 0xff
je 0x507876
push dword [ebp - 0x3dc]
mov eax, dword [ebp - 0x400]
mov esi, dword [ebp - 0x3fc]
add eax, 8
mov ecx, dword [edi + 8]
push 0
push eax
mov eax, dword [edi + 0x1c]
push dword [ebp - 0x3f8]
mov edx, dword [ecx]
mov eax, dword [eax + 0x2400]
push dword [eax + esi*4]
mov eax, dword [ebp - 0x3d0]
sar eax, 8
push eax
push dword [edi + 0x24]
call dword [edx + 0x90]
jmp 0x507a3e
mov eax, dword [ebp - 0x390]
mov eax, dword [eax + 8]
test eax, eax
je 0x50794a
mov ecx, dword [ebp - 0x424]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x3fc], eax
test eax, eax
jle 0x50794a
cmp dword [ebp - 0x3f0], 0
je 0x5078eb
mov ecx, dword [edi + 8]
mov eax, esi
test eax, eax
jns 0x5078b3
add eax, 1
sar eax, 1
mov edx, dword [ecx]
mov dword [ebp - 0x3dc], eax
mov eax, dword [ebp - 0x400]
add eax, dword [ebp - 0x3dc]
push eax
mov eax, dword [ebp - 0x43c]
add eax, 8
push eax
push dword [ebp - 0x38c]
push dword [ebp - 0x3fc]
push dword [edi + 0x20]
call dword [edx + 0xa8]
jmp 0x5078f8
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x3dc], eax
mov eax, dword [ebp - 0x400]
add eax, dword [ebp - 0x3dc]
mov ecx, dword [edi + 8]
mov esi, dword [ebp - 0x424]
push eax
mov eax, dword [ebp - 0x43c]
sub eax, dword [ebp - 0x3f0]
mov edx, dword [ecx]
add eax, 8
push eax
mov eax, dword [ebp - 0x390]
push dword [ebp - 0x38c]
mov eax, dword [eax + 8]
push dword [eax + esi*4]
push dword [edi + 0x20]
call dword [edx + 0xa8]
mov dword [ebp - 0x3f0], 0
jmp 0x507a3e
mov ecx, dword [ebp - 0x3c4]
add ecx, dword [ebp - 0x3e4]
mov edi, dword [ebp - 0x3c0]
and ecx, 0xf
shr edx, 1
mov dword [ebp - 0x3d0], ecx
je 0x507978
mov eax, 0x10
sub eax, ecx
sub eax, esi
mov dword [ebp - 0x3d0], eax
mov eax, dword [edi + 0x20]
mov esi, dword [edi + 8]
mov dword [ebp - 0x3fc], eax
cmp word [eax + 4], 0x10
mov eax, dword [ebp - 0x3cc]
mov ecx, eax
mov edi, dword [esi]
jbe 0x5079e5
and ecx, edx
cdq
sub eax, edx
sar eax, 1
neg eax
sub eax, ecx
mov ecx, dword [ebp - 0x3cc]
push eax
push 0xfffffffffffffff8
push dword [ebp - 0x3dc]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x400]
push 0
push eax
push dword [ebp - 0x3f8]
push ecx
mov ecx, dword [ebp - 0x438]
mov eax, ecx
shr eax, 1
and ecx, 0x1f
and eax, 0xfffffff0
add eax, dword [ebp - 0x3d0]
push 0x10
push eax
shl ecx, 4
push ecx
jmp 0x507a2a
and ecx, edx
cdq
sub eax, edx
sar eax, 1
neg eax
sub eax, ecx
mov ecx, dword [ebp - 0x3cc]
push eax
push 0xfffffffffffffff8
push dword [ebp - 0x3dc]
mov eax, ecx
cdq
sub eax, edx
push 0
sar eax, 1
add eax, dword [ebp - 0x400]
push eax
push dword [ebp - 0x3f8]
push ecx
mov ecx, dword [ebp - 0x438]
shl ecx, 4
add ecx, dword [ebp - 0x3d0]
push 0x10
push ecx
push 0
push dword [ebp - 0x3fc]
mov ecx, esi
call dword [edi + 0x8c]
mov edi, dword [ebp - 0x3c0]
mov esi, dword [ebp - 0x3cc]
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x3d4]
add dword [ebp - 0x3f8], 0x10
inc ecx
mov dword [ebp - 0x3d4], ecx
mov eax, dword [eax + 0x28]
add eax, dword [ebp - 0x42c]
sar eax, 4
add eax, 2
cmp ecx, eax
jl 0x5077a0
mov edx, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x390]
add edx, esi
mov ecx, dword [ebp - 0x3ec]
inc dword [ebp - 0x424]
mov dword [ebp - 0x3c4], edx
cmp edx, dword [ecx + eax + 4]
jl 0x507603
mov esi, dword [ebp - 0x398]
jmp 0x507aaa
mov ecx, dword [ebp - 0x3ec]
mov eax, dword [ebp - 0x390]
mov edx, dword [ebp - 0x3e4]
add edx, dword [ecx + eax + 4]
add ecx, 0xc
mov eax, dword [ebp - 0x3e8]
inc eax
mov dword [ebp - 0x3e4], edx
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3ec], ecx
cmp eax, esi
jl 0x5075d0
jmp 0x507c54
mov edx, dword [ebp - 0x394]
cmp byte [edx + 8], 1
jne 0x507b08
cmp byte [edi + 0x2cc], 0
je 0x507b08
mov eax, dword [edi + 8]
mov byte [eax + 0x1d58], 1
mov edx, dword [ebp - 0x394]
mov eax, dword [edx + 4]
mov ecx, dword [edi + 0x64]
imul eax, ecx
cmp byte [ebp - 0x368], 0
je 0x507b1f
mov esi, dword [edi + 0x4c]
jmp 0x507b22
mov esi, dword [edi + 0x34]
imul esi, dword [edx]
add esi, eax
sar esi, 8
cmp byte [ebp - 0x367], 0
mov dword [ebp - 0x424], esi
je 0x507b4e
mov esi, dword [edi + 0x50]
imul esi, dword [ebp - 0x384]
imul ecx, dword [ebp - 0x380]
add esi, ecx
jmp 0x507b63
mov eax, dword [edi + 0x38]
mov esi, ecx
imul esi, dword [ebp - 0x380]
imul eax, dword [ebp - 0x384]
add esi, eax
mov eax, dword [ebp - 0x424]
sub eax, dword [ebp - 0x370]
mov dword [ebp - 0x424], eax
sar eax, 4
sar esi, 8
sub esi, dword [ebp - 0x36c]
mov dword [ebp - 0x3e8], esi
lea esi, [eax - 1]
mov eax, dword [edi + 4]
mov edi, esi
mov dword [ebp - 0x400], esi
mov dword [ebp - 0x3d0], esi
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
sar eax, 4
sar ecx, 4
add eax, 2
add ecx, 3
mov dword [ebp - 0x3dc], eax
mov eax, dword [ebp - 0x3e8]
add edi, ecx
mov dword [ebp - 0x3e4], edi
mov edi, dword [ebp - 0x3dc]
imul edi, ecx
sar eax, 4
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x3dc], edi
test edi, edi
mov edi, dword [ebp - 0x3c0]
jle 0x507c3b
test byte [ebp - 0x358], 2
mov edx, esi
mov ecx, eax
je 0x507e15
test esi, esi
jns 0x507e06
mov edx, dword [ebp - 0x3c4]
lea ecx, [esi + 1]
cmp ecx, dword [ebp - 0x3e4]
mov esi, dword [ebp - 0x400]
cmovl esi, ecx
lea eax, [edx + 1]
mov dword [ebp - 0x3d0], esi
cmovl eax, edx
mov dword [ebp - 0x3c4], eax
mov eax, dword [ebp - 0x3c4]
sub dword [ebp - 0x3dc], 1
jne 0x507be3
mov edx, dword [ebp - 0x394]
cmp byte [edx + 8], 0
je 0x507c54
cmp byte [edi + 0x2cc], 0
je 0x507c54
mov eax, dword [edi + 8]
mov byte [eax + 0x1d58], 0
mov eax, dword [edi + 0x1c]
mov edx, dword [ebp - 0x3f4]
mov eax, dword [eax + 0x2514]
dec eax
cmp edx, eax
jne 0x507c75
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x7c]
mov edx, dword [ebp - 0x3f4]
mov ecx, dword [edi + 8]
xor esi, esi
mov al, byte [edi + 0x14a]
mov byte [ecx + 0x1d58], al
cmp dword [edi + 0x15c], esi
jle 0x507da3
mov eax, dword [edi + 0x154]
mov ecx, dword [edi + 0x150]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x507cf3
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x507cce
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_class_Object__class_std::allocator_class_Object____::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov ecx, dword [edi + 0x150]
add esp, 0x14
mov ecx, dword [ecx + esi*4]
test ecx, ecx
je 0x507d90
cmp byte [ecx + 0xf8], 0
je 0x507d90
cmp byte [ecx + 0xfb], 0
jne 0x507d1d
cmp byte [ecx + 0xfa], 0
je 0x507d90
mov eax, dword [edi + 0x1c]
mov edx, dword [ebp - 0x3f4]
mov eax, dword [eax + 0x2514]
add eax, dword [ecx + 0x104]
cmp edx, eax
jne 0x507d96
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x110]
mov al, byte [eax + 0x3a]
mov byte [ecx + 0xfd], al
mov eax, dword [0x64d340]
sub eax, dword [0x64d33c]
sar eax, 2
cmp edx, eax
jae 0x507d85
mov edi, dword [0x64d33c]
mov edi, dword [edi + edx*4]
cmp edi, dword [ecx + 0x10]
mov dword [ebp - 0x404], edi
mov edi, dword [ebp - 0x3c0]
je 0x507d85
cmp eax, edx
jbe 0x50a278
mov eax, dword [ebp - 0x404]
mov dword [ecx + 0x10], eax
push dword [edi + 0x38]
mov eax, dword [ecx]
push dword [edi + 0x34]
call dword [eax + 0x1c]
mov edx, dword [ebp - 0x3f4]
inc esi
cmp esi, dword [edi + 0x15c]
jl 0x507c92
mov eax, dword [edi + 0x1c]
cmp edx, dword [eax + 0x2514]
jne 0x507db5
mov ecx, edi
call fcn.004a6513
mov edx, dword [edi + 0x228]
lea eax, [edi + 0x224]
xor esi, esi
mov dword [ebp - 0x408], edx
mov dword [ebp - 0x410], esi
mov dword [ebp - 0x40c], esi
mov byte [ebp - 4], 1
test eax, eax
jne 0x508235
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x44c]
push 3
call eax
lea ecx, [ebp - 0x410]
call fcn.004a54ab
lea ecx, [ebp - 0x44c]
jmp 0x50827f
mov eax, dword [ebp - 0x38c]
cmp esi, eax
jl 0x507e1b
jmp 0x507bfc
mov eax, dword [ebp - 0x38c]
test byte [ebp - 0x358], 4
je 0x507e7a
cmp dword [ebp - 0x3c4], 0
mov edi, dword [ebp - 0x3c0]
jl 0x507bfc
mov edi, dword [ebp - 0x3c4]
cmp edi, dword [ebp - 0x388]
mov edi, dword [ebp - 0x3c0]
jl 0x507e7a
mov edx, dword [ebp - 0x3c4]
lea ecx, [esi + 1]
cmp ecx, dword [ebp - 0x3e4]
mov esi, dword [ebp - 0x400]
cmovl esi, ecx
lea eax, [edx + 1]
mov dword [ebp - 0x3d0], esi
cmovl eax, edx
mov dword [ebp - 0x3c4], eax
jmp 0x507c2c
test esi, esi
jns 0x507e84
nop
add edx, eax
js 0x507e80
cmp edx, eax
jl 0x507e8e
sub edx, eax
cmp edx, eax
jge 0x507e88
cmp dword [ebp - 0x3c4], 0
mov eax, dword [ebp - 0x388]
jge 0x507ea4
nop dword [eax]
add ecx, eax
js 0x507ea0
cmp ecx, eax
jl 0x507eae
sub ecx, eax
cmp ecx, eax
jge 0x507ea8
imul ecx, dword [ebp - 0x38c]
mov eax, esi
shl eax, 4
sub eax, dword [ebp - 0x424]
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x374]
add ecx, edx
movsx eax, word [eax + edx*2]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x3c4]
shl eax, 4
add dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x3e8]
sub dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x37c]
movsx ecx, word [eax + ecx*2]
mov eax, ecx
sar eax, 0xa
mov dl, al
and eax, 3
and dl, 1
mov dword [ebp - 0x42c], eax
mov byte [ebp - 0x431], dl
mov edx, ecx
sar edx, 0xb
and edx, 0xffffff01
mov dword [ebp - 0x3d4], edx
mov edx, ecx
sar edx, 0xc
mov dword [ebp - 0x470], edx
and dl, 1
mov byte [ebp - 0x432], dl
mov edx, ecx
sar edx, 0xd
and edx, 0xffffff01
mov dword [ebp - 0x438], edx
mov edx, ecx
sar edx, 0xe
mov dword [ebp - 0x404], edx
and dl, 1
mov byte [ebp - 0x3d5], dl
mov edx, ecx
sar edx, 0xf
and ecx, 0x3ff
and edx, 0xffffff01
mov dword [ebp - 0x3fc], ecx
mov dword [ebp - 0x43c], edx
cmp ecx, dword [0x64cce4]
je 0x508204
mov eax, dword [edi + 0x1c]
push dword [ebp - 0x42c]
push 0
mov eax, dword [eax + 0x240c]
movsx eax, word [eax + ecx*2]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x3f0], eax
movzx eax, al
mov dword [ebp - 0x3c8], eax
cmp eax, 0xff
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3cc]
je 0x507ffa
mov esi, dword [ebp - 0x3c8]
add eax, 8
push eax
mov eax, dword [ebp - 0x3f8]
add eax, 8
push eax
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 0x2400]
push dword [eax + esi*4]
mov eax, dword [ebp - 0x3f0]
sar eax, 8
push eax
push dword [edi + 0x24]
call dword [edx + 0x90]
mov esi, dword [ebp - 0x3d0]
jmp 0x508019
add eax, 8
push eax
mov eax, dword [ebp - 0x3f8]
add eax, 8
push eax
push dword [ebp - 0x3fc]
push 0
push dword [edi + 0x20]
call dword [edx + 0x90]
cmp byte [edi + 0x357], 0
je 0x508204
xor esi, esi
imul edx, dword [ebp - 0x3fc], 0x26
mov dword [ebp - 0x3c8], edx
mov ecx, dword [edi + 0x1c]
mov eax, 0xf
sub eax, esi
cmp byte [ebp - 0x431], 0
cmove eax, esi
mov dword [ebp - 0x3f0], eax
mov eax, dword [ecx + 0x414]
add eax, edx
mov dword [ebp - 0x42c], eax
movzx edx, byte [eax + esi]
mov eax, dword [ecx + 0x418]
add eax, dword [ebp - 0x3c8]
cmp dword [0x64cce4], 0x3ff
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x3fc], eax
movzx ecx, byte [eax + esi]
mov dword [ebp - 0x3ec], ecx
jne 0x5080c1
mov eax, dword [ebp - 0x42c]
cmp byte [eax + 0x20], 0
jne 0x5080a7
mov eax, dword [ebp - 0x3fc]
cmp byte [eax + 0x20], 0
je 0x5080c1
mov eax, 0xf
sub eax, edx
mov dword [ebp - 0x428], eax
mov eax, 0xf
sub eax, ecx
mov dword [ebp - 0x3ec], eax
mov eax, dword [edi + 0xf4]
mov eax, dword [eax + 0x8d0]
test eax, eax
jne 0x508152
test byte [ebp - 0x470], 1
je 0x5081ee
cmp byte [ebp - 0x432], al
je 0x5080f9
cmp byte [ebp - 0x438], al
je 0x508107
mov eax, 0xffffff
jmp 0x50810c
cmp byte [ebp - 0x438], 0
mov eax, 0xff0000
jne 0x50810c
mov eax, 0xffff00
mov ecx, dword [ebp - 0x42c]
cmp byte [ecx + esi + 0x10], 0
je 0x5081ee
mov edx, dword [ebp - 0x3d4]
push eax
mov eax, 0x10
sub eax, dword [ebp - 0x428]
cmp byte [ecx + 0x20], dl
mov ecx, dword [edi + 8]
push eax
push 1
mov edx, dword [ecx]
je 0x508147
push dword [ebp - 0x3cc]
jmp 0x5081d8
mov eax, dword [ebp - 0x428]
jmp 0x5081d1
cmp eax, 1
jne 0x5081ee
test byte [ebp - 0x404], al
je 0x5081ee
mov ecx, dword [ebp - 0x3fc]
cmp byte [ecx + esi + 0x10], 0
je 0x5081ee
cmp byte [ebp - 0x3d5], 0
je 0x508191
cmp byte [ebp - 0x43c], 0
je 0x50819f
mov eax, 0xffffff
jmp 0x5081a4
cmp byte [ebp - 0x43c], 0
mov eax, 0xff0000
jne 0x5081a4
mov eax, 0xffff00
mov edx, dword [ebp - 0x3d4]
push eax
mov eax, 0x10
sub eax, dword [ebp - 0x3ec]
cmp byte [ecx + 0x20], dl
mov ecx, dword [edi + 8]
push eax
push 1
mov edx, dword [ecx]
je 0x5081cb
push dword [ebp - 0x3cc]
jmp 0x5081d8
mov eax, dword [ebp - 0x3ec]
add eax, dword [ebp - 0x3cc]
push eax
mov eax, dword [ebp - 0x3f0]
add eax, dword [ebp - 0x3f8]
push eax
call dword [edx + 0x7c]
mov edi, dword [ebp - 0x3c0]
mov edx, dword [ebp - 0x3c8]
inc esi
cmp esi, 0x10
jl 0x508035
mov esi, dword [ebp - 0x3d0]
inc esi
mov dword [ebp - 0x3d0], esi
cmp esi, dword [ebp - 0x3e4]
jl 0x507c26
mov eax, dword [ebp - 0x3c4]
mov esi, dword [ebp - 0x400]
inc eax
mov dword [ebp - 0x3d0], esi
mov dword [ebp - 0x3c4], eax
jmp 0x507c2c
mov ecx, dword [eax]
mov dword [ebp - 0x404], ecx
test ecx, ecx
je 0x508298
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x450]
push 3
call eax
lea ecx, [ebp - 0x410]
call fcn.004a54ab
mov ecx, dword [ebp - 0x404]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x40c], eax
lea eax, [ebp - 0x410]
mov dword [ecx + 4], eax
mov dword [ebp - 0x410], ecx
lea ecx, [ebp - 0x450]
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
call eax
mov esi, dword [ebp - 0x410]
lea eax, [edi + 0x224]
mov edx, dword [ebp - 0x408]
nop dword [eax + eax]
mov eax, dword [eax + 8]
xor ecx, ecx
mov dword [ebp - 0x448], ecx
mov dword [ebp - 0x444], ecx
mov dword [ebp - 0x440], eax
lea eax, [edi + 0x224]
mov byte [ebp - 4], 3
test eax, eax
jne 0x5082e6
push 3
lea ecx, [ebp - 0x454]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x448]
call fcn.004a54ab
lea ecx, [ebp - 0x454]
jmp 0x50832f
mov eax, dword [eax]
mov dword [ebp - 0x404], eax
test eax, eax
je 0x508347
push 3
lea ecx, [ebp - 0x458]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x448]
call fcn.004a54ab
mov ecx, dword [ebp - 0x404]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x444], eax
lea eax, [ebp - 0x448]
mov dword [ecx + 4], eax
mov dword [ebp - 0x448], ecx
lea ecx, [ebp - 0x458]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov ecx, dword [ebp - 0x448]
mov esi, dword [ebp - 0x410]
mov edx, dword [ebp - 0x408]
test esi, esi
je 0x50834d
mov esi, dword [esi]
test ecx, ecx
jne 0x508355
xor eax, eax
jmp 0x508357
mov eax, dword [ecx]
cmp esi, eax
je 0x5083a7
push str.vector_iterators_incompatible
push 0x5fe0d0
push 0
push 0xc7
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508382
int3
push 0
push 0xc7
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::_Compat
push str._vector_iterators_incompatible_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
cmp edx, dword [ebp - 0x440]
setne byte [ebp - 0x3d5]
mov esi, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x45c]
push 3
mov byte [ebp - 4], 4
call esi
lea ecx, [ebp - 0x448]
call fcn.004a54ab
lea ecx, [ebp - 0x45c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
cmp byte [ebp - 0x3d5], 0
mov byte [ebp - 4], 2
je 0x508688
mov esi, dword [ebp - 0x410]
test esi, esi
jne 0x508402
mov dword [ebp - 0x3c8], esi
jmp 0x50840a
mov eax, dword [esi]
mov dword [ebp - 0x3c8], eax
mov edx, dword [ebp - 0x408]
test edx, edx
jne 0x50845f
push str.cant_dereference_value_initialized_vector_iterator
push 0x5fe0d0
push edx
push 0x32
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508437
int3
push 0
push 0x32
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_value_initialized_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov esi, dword [ebp - 0x410]
mov eax, dword [ebp - 0x3c8]
cmp dword [eax + 4], edx
ja 0x50846f
cmp edx, dword [eax + 8]
jb 0x5084bb
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508493
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov esi, dword [ebp - 0x410]
mov eax, dword [edx]
cmp byte [eax + 0xf8], 0
je 0x5085ba
test esi, esi
jne 0x5084d2
xor eax, eax
jmp 0x5084d4
mov eax, dword [esi]
cmp dword [eax + 4], edx
ja 0x5084de
cmp edx, dword [eax + 8]
jb 0x50852a
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508502
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov esi, dword [ebp - 0x410]
mov eax, dword [edi + 0x1c]
mov ecx, dword [edx]
mov eax, dword [eax + 0x2514]
add eax, dword [ecx + 0x104]
cmp dword [ebp - 0x3f4], eax
jne 0x5085ba
test esi, esi
jne 0x50854f
xor eax, eax
jmp 0x508551
mov eax, dword [esi]
cmp dword [eax + 4], edx
ja 0x50855b
cmp edx, dword [eax + 8]
jb 0x5085a1
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x50857f
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov ecx, dword [edx]
push dword [edi + 0x38]
push dword [edi + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov edx, dword [ebp - 0x408]
mov esi, dword [ebp - 0x410]
test esi, esi
jne 0x5085c6
mov dword [ebp - 0x3c8], esi
jmp 0x5085ce
mov eax, dword [esi]
mov dword [ebp - 0x3c8], eax
test edx, edx
jne 0x50861d
push str.cant_increment_value_initialized_vector_iterator
push 0x5fe0d0
push edx
push 0x4a
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x5085f5
int3
push 0
push 0x4a
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push 0x60bb50
push str._cant_increment_value_initialized_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov esi, dword [ebp - 0x410]
mov eax, dword [ebp - 0x3c8]
cmp edx, dword [eax + 8]
jb 0x508674
push str.cant_increment_vector_iterator_past_end
push 0x5fe0d0
push 0
push 0x4b
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x50864c
int3
push 0
push 0x4b
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push 0x60bb50
push str._cant_increment_vector_iterator_past_end_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x408]
add esp, 0x14
mov esi, dword [ebp - 0x410]
add edx, 4
lea eax, [edi + 0x224]
mov dword [ebp - 0x408], edx
jmp 0x5082a0
push 3
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 5
call esi
lea ecx, [ebp - 0x410]
call fcn.004a54ab
lea ecx, [ebp - 0x460]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov edx, dword [edi + 0x238]
lea eax, [edi + 0x234]
xor esi, esi
mov dword [ebp - 0x414], edx
mov dword [ebp - 0x41c], esi
mov dword [ebp - 0x418], esi
mov byte [ebp - 4], 6
test eax, eax
jne 0x5086f6
push 3
lea ecx, [ebp - 0x464]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x41c]
call fcn.004a54ab
lea ecx, [ebp - 0x464]
jmp 0x50873f
mov ecx, dword [eax]
mov dword [ebp - 0x404], ecx
test ecx, ecx
je 0x508757
push 3
lea ecx, [ebp - 0x468]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x41c]
call fcn.004a54ab
mov ecx, dword [ebp - 0x404]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x418], eax
lea eax, [ebp - 0x41c]
mov dword [ecx + 4], eax
mov dword [ebp - 0x41c], ecx
lea ecx, [ebp - 0x468]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov esi, dword [ebp - 0x41c]
lea eax, [edi + 0x234]
mov edx, dword [ebp - 0x414]
mov eax, dword [eax + 8]
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
lea eax, [edi + 0x234]
mov byte [ebp - 4], 8
test eax, eax
jne 0x508791
push 3
lea ecx, [ebp - 0x46c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x1c]
call fcn.004a54ab
lea ecx, [ebp - 0x46c]
jmp 0x5087ce
mov eax, dword [eax]
mov dword [ebp - 0x404], eax
test eax, eax
je 0x5087e3
push 3
lea ecx, [ebp - 0x430]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x1c]
call fcn.004a54ab
mov ecx, dword [ebp - 0x404]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
mov dword [ecx + 4], eax
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x430]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x41c]
mov edx, dword [ebp - 0x414]
test esi, esi
je 0x5087e9
mov esi, dword [esi]
test ecx, ecx
jne 0x5087f1
xor eax, eax
jmp 0x5087f3
mov eax, dword [ecx]
cmp esi, eax
je 0x508843
push str.vector_iterators_incompatible
push 0x5fe0d0
push 0
push 0xc7
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x50881e
int3
push 0
push 0xc7
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::_Compat
push str._vector_iterators_incompatible_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
cmp edx, dword [ebp - 0x14]
setne byte [ebp - 0x3d5]
mov esi, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x420]
push 3
mov byte [ebp - 4], 9
call esi
lea ecx, [ebp - 0x1c]
call fcn.004a54ab
lea ecx, [ebp - 0x420]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
cmp byte [ebp - 0x3d5], 0
mov byte [ebp - 4], 7
je 0x508b1e
mov esi, dword [ebp - 0x41c]
test esi, esi
jne 0x508898
mov dword [ebp - 0x3c8], esi
jmp 0x5088a0
mov eax, dword [esi]
mov dword [ebp - 0x3c8], eax
mov edx, dword [ebp - 0x414]
test edx, edx
jne 0x5088f5
push str.cant_dereference_value_initialized_vector_iterator
push 0x5fe0d0
push edx
push 0x32
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x5088cd
int3
push 0
push 0x32
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_value_initialized_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov esi, dword [ebp - 0x41c]
mov eax, dword [ebp - 0x3c8]
cmp dword [eax + 4], edx
ja 0x508905
cmp edx, dword [eax + 8]
jb 0x508951
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508929
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov esi, dword [ebp - 0x41c]
mov eax, dword [edx]
cmp byte [eax + 0xf8], 0
je 0x508a50
test esi, esi
jne 0x508968
xor eax, eax
jmp 0x50896a
mov eax, dword [esi]
cmp dword [eax + 4], edx
ja 0x508974
cmp edx, dword [eax + 8]
jb 0x5089c0
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508998
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov esi, dword [ebp - 0x41c]
mov eax, dword [edi + 0x1c]
mov ecx, dword [edx]
mov eax, dword [eax + 0x2514]
add eax, dword [ecx + 0x104]
cmp dword [ebp - 0x3f4], eax
jne 0x508a50
test esi, esi
jne 0x5089e5
xor eax, eax
jmp 0x5089e7
mov eax, dword [esi]
cmp dword [eax + 4], edx
ja 0x5089f1
cmp edx, dword [eax + 8]
jb 0x508a37
push str.cant_dereference_out_of_range_vector_iterator
push 0x5fe0d0
push 0
push 0x34
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508a15
int3
push 0
push 0x34
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::_Vector_const_iterator_class_std::_Vector_val_struct_std::_Simple_types_class_Object______::operator_
push str._cant_dereference_out_of_range_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov ecx, dword [edx]
push dword [edi + 0x38]
push dword [edi + 0x34]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov edx, dword [ebp - 0x414]
mov esi, dword [ebp - 0x41c]
test esi, esi
jne 0x508a5c
mov dword [ebp - 0x3c8], esi
jmp 0x508a64
mov eax, dword [esi]
mov dword [ebp - 0x3c8], eax
test edx, edx
jne 0x508ab3
push str.cant_increment_value_initialized_vector_iterator
push 0x5fe0d0
push edx
push 0x4a
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508a8b
int3
push 0
push 0x4a
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push 0x60bb50
push str._cant_increment_value_initialized_vector_iterator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov esi, dword [ebp - 0x41c]
mov eax, dword [ebp - 0x3c8]
cmp edx, dword [eax + 8]
jb 0x508b0a
push str.cant_increment_vector_iterator_past_end
push 0x5fe0d0
push 0
push 0x4b
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508ae2
int3
push 0
push 0x4b
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push 0x60bb50
push str._cant_increment_vector_iterator_past_end_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov edx, dword [ebp - 0x414]
add esp, 0x14
mov esi, dword [ebp - 0x41c]
add edx, 4
lea eax, [edi + 0x234]
mov dword [ebp - 0x414], edx
jmp 0x508757
push 3
lea ecx, [ebp - 0x3e0]
mov byte [ebp - 4], 0xa
call esi
lea ecx, [ebp - 0x41c]
call fcn.004a54ab
lea ecx, [ebp - 0x3e0]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov ecx, dword [edi + 8]
mov al, byte [edi + 0x14b]
mov byte [ebp - 4], 0
mov byte [ecx + 0x1d58], al
mov esi, dword [edi + 0x11c]
sub esi, 1
js 0x508ba8
lea eax, [esi + 0x3e]
lea eax, [edi + eax*4]
mov dword [ebp - 0x3c8], eax
nop dword [eax]
mov ecx, dword [eax]
mov eax, dword [edi + 0x1c]
mov edx, dword [ecx + 0x8d4]
add edx, dword [eax + 0x2514]
cmp dword [ebp - 0x3f4], edx
jne 0x508b94
push dword [edi + 0x38]
mov eax, dword [ecx]
push dword [edi + 0x34]
call dword [eax + 0x1c]
mov eax, dword [ebp - 0x3c8]
sub eax, 4
sub esi, 1
mov dword [ebp - 0x3c8], eax
jns 0x508b70
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebp - 0x3f4]
inc edx
mov dword [ebp - 0x3f4], edx
movsx eax, word [ecx]
cmp edx, eax
jl 0x507451
mov eax, dword [edi + 8]
mov byte [eax + 0x1d58], 0
mov eax, dword [edi + 8]
mov dword [eax + 0x1d60], 1
mov eax, dword [edi + 0x20c]
dec eax
cmp eax, 5
ja case.0x508be6.3
jmp dword [eax*4 + 0x50a280]
push 0x40
jmp 0x508bfa
push 0x80
jmp 0x508bfa
push 0
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
mov ecx, dword [edi + 0x70]
sub ecx, dword [edi + 0x38]
cmp ecx, 0xfffffff0
jl 0x508c75
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x2c]
add eax, 0x10
cmp ecx, eax
jge 0x508c75
mov eax, dword [edx + 0x28]
mov esi, dword [edi + 0x34]
add eax, 0x20
add eax, esi
cmp esi, eax
jg 0x508c75
nop dword [eax]
mov eax, dword [edi + 0x70]
sub eax, dword [edi + 0x38]
mov ecx, dword [edi + 8]
push 0
push 0
push eax
mov edx, dword [ecx]
mov eax, esi
and eax, 0xfffffe0
sub eax, dword [edi + 0x34]
push eax
mov eax, dword [edi + 0x30]
sar eax, 8
push eax
push 0
push dword [edi + 0xd8]
call dword [edx + 0x90]
mov eax, dword [edi + 4]
add esi, 0x20
mov ecx, dword [eax + 0x28]
mov eax, dword [edi + 0x34]
add eax, 0x20
add eax, ecx
cmp esi, eax
jle 0x508c30
mov eax, dword [edi + 8]
push 0xff
mov dword [eax + 0x1d60], 0
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
mov ecx, edi
call fcn.004a850c
cmp byte [edi + 0x355], 0
jne 0x508f1e
cmp dword [edi + 0x144], 0
jne 0x508f1e
mov eax, dword [edi + 0xf4]
mov eax, dword [eax + 0x79c]
movzx eax, word [eax]
test ax, ax
cwde
jns 0x508cc7
neg eax
push eax
lea eax, [ebp - 0xa0]
push str._04X
push eax
call fcn.004a75e9
mov eax, dword [edi + 0xf4]
add esp, 0xc
mov eax, dword [eax + 0x7a0]
movzx eax, word [eax]
test ax, ax
cwde
jns 0x508cf3
neg eax
push eax
lea eax, [ebp - 0x2d4]
push str._04X
push eax
call fcn.004a75e9
lea ecx, [ebp - 0xa0]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x508d11
sub ecx, edx
lea edx, [ebp - 0x2d4]
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x508d23
mov eax, dword [edi + 0x34]
sub edx, esi
lea esi, [edx + ecx]
cdq
xor eax, edx
mov dword [ebp - 0x3e0], esi
sub eax, edx
push eax
lea eax, [ebp - 0x254]
push str._04X
push eax
call fcn.004a75e9
mov eax, dword [edi + 0x38]
cdq
xor eax, edx
sub eax, edx
push eax
lea eax, [ebp - 0x120]
push str._04X
push eax
call fcn.004a75e9
lea edx, [ebp - 0x254]
add esp, 0x18
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x508d75
sub edx, ecx
lea ecx, [ebp - 0x120]
lea eax, [ecx + 1]
mov dword [ebp - 0x3e0], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x508d90
sub ecx, dword [ebp - 0x3e0]
add ecx, edx
mov dword [ebp - 0x3d4], ecx
cmp esi, ecx
jae 0x508df3
jbe 0x508df9
push str.invalid_comparator
push 0x5fe0d0
push 0
push 0x150e
push 0x602fa0
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x508dd2
int3
push 0
push 0x150e
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_algorithm
push str.std::max
push str._invalid_comparator_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
add esp, 0x14
jmp 0x508df9
mov dword [ebp - 0x3d4], esi
mov eax, dword [edi + 0xf4]
mov ecx, dword [edi + 0x20]
push 0x1f
mov eax, dword [eax + 0x7a0]
movsx eax, word [eax]
cmp eax, dword [edi + 0x70]
mov eax, dword [edi + 8]
mov esi, dword [eax]
jl 0x508e1e
call fcn.004a861f
jmp 0x508e23
call fcn.004a5668
mov ecx, dword [edi + 8]
push eax
mov eax, dword [ebp - 0x3d4]
push 0x10
shl eax, 3
push eax
push 0xa
push 0x3b
call dword [esi + 0x7c]
mov eax, dword [edi + 0xf4]
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x79c]
mov edx, dword [ecx]
movsx eax, word [eax]
sar eax, 0x1f
and eax, 0xffff0001
add eax, 0xffffff
push eax
lea eax, [ebp - 0xa0]
push eax
push 0xa
push 0x3b
call dword [edx + 0xb0]
lea esi, [ebp - 0xa0]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x508e76
mov eax, dword [edi + 0xf4]
sub esi, ecx
mov ecx, dword [edi + 8]
mov eax, dword [eax + 0x7a0]
mov edx, dword [ecx]
movsx eax, word [eax]
sar eax, 0x1f
and eax, 0xffff0001
add eax, 0xffffff
push eax
lea eax, [ebp - 0x2d4]
push eax
push 0xa
lea eax, [esi*8 + 0x3b]
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 8]
sar eax, 0x1f
and eax, 0xffff0001
add eax, 0xffffff
mov edx, dword [ecx]
push eax
lea eax, [ebp - 0x254]
push eax
push 0x12
push 0x3b
call dword [edx + 0xb0]
lea esi, [ebp - 0x254]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x508ee8
mov eax, dword [edi + 0x38]
sub esi, ecx
mov ecx, dword [edi + 8]
sar eax, 0x1f
and eax, 0xffff0001
add eax, 0xffffff
mov edx, dword [ecx]
push eax
lea eax, [ebp - 0x120]
push eax
push 0x12
lea eax, [esi*8 + 0x3b]
push eax
call dword [edx + 0xb0]
cmp byte [edi + 0x352], 0
je 0x509177
lea eax, [ebp - 0x20]
push str.Normal
push eax
call fcn.004a75e9
mov edx, dword [edi + 4]
lea eax, [ebp - 0x20]
mov ecx, dword [edi + 8]
add esp, 8
mov esi, dword [ecx]
push 0xffffff
push eax
mov eax, dword [edx + 0x2c]
sub eax, 0x4a
push eax
mov eax, dword [edx + 0x28]
sub eax, 0x84
push eax
call dword [esi + 0xb0]
lea eax, [ebp - 0x20]
push 0x60b374
push eax
call fcn.004a75e9
mov edx, dword [edi + 4]
lea eax, [ebp - 0x20]
mov ecx, dword [edi + 8]
add esp, 8
mov esi, dword [ecx]
push 0xffffff
push eax
mov eax, dword [edx + 0x2c]
sub eax, 0x4a
push eax
mov eax, dword [edx + 0x28]
sub eax, 0x40
push eax
call dword [esi + 0xb0]
xor edx, edx
mov dword [ebp - 0x3d4], edx
jmp 0x508fb6
mov edi, dword [ebp - 0x3c0]
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x3c0]
push edx
mov edi, dword [eax]
mov eax, edx
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 0x20]
sar eax, 2
and eax, 0xfffffffc
mov dword [ebp - 0x3c8], eax
mov eax, edx
and eax, 0xf
shl eax, 2
mov dword [ebp - 0x3e8], eax
call fcn.004a5668
mov ecx, dword [ebp - 0x3c8]
push eax
mov eax, dword [esi + 0x2c]
add ecx, 0xffffffc0
add eax, ecx
mov ecx, dword [ebp - 0x3e8]
push 4
push 4
push eax
mov eax, dword [esi + 0x28]
add ecx, 0xffffff7c
add eax, ecx
push eax
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax + 8]
call dword [edi + 0x7c]
mov ecx, dword [ebp - 0x3c0]
push dword [ebp - 0x3d4]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 0x20]
mov edi, dword [eax]
call fcn.004a861f
mov ecx, dword [ebp - 0x3c8]
push eax
mov eax, dword [esi + 0x2c]
add ecx, 0xffffffc0
add eax, ecx
mov ecx, dword [ebp - 0x3e8]
push 4
push 4
push eax
mov eax, dword [esi + 0x28]
add ecx, 0xffffffc0
add eax, ecx
push eax
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax + 8]
call dword [edi + 0x7c]
mov edx, dword [ebp - 0x3d4]
inc edx
mov dword [ebp - 0x3d4], edx
cmp edx, 0x100
jl 0x508fb0
xor edx, edx
mov dword [ebp - 0x3d4], edx
nop word [eax + eax]
mov ecx, dword [ebp - 0x3c0]
push edx
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 0xf4]
mov edi, dword [eax]
mov eax, edx
sar eax, 2
mov ecx, dword [ecx + 0x46c]
and eax, 0xfffffffc
mov dword [ebp - 0x3c8], eax
mov eax, edx
and eax, 0xf
shl eax, 2
mov dword [ebp - 0x3e8], eax
call fcn.004a5668
mov ecx, dword [ebp - 0x3c8]
push eax
mov eax, dword [esi + 0x2c]
add ecx, 0xffffff60
add eax, ecx
mov ecx, dword [ebp - 0x3e8]
push 4
push 4
push eax
mov eax, dword [esi + 0x28]
add ecx, 0xffffff7c
add eax, ecx
push eax
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax + 8]
call dword [edi + 0x7c]
mov ecx, dword [ebp - 0x3c0]
push dword [ebp - 0x3d4]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 0xf4]
mov edi, dword [eax]
mov ecx, dword [ecx + 0x46c]
call fcn.004a861f
mov ecx, dword [ebp - 0x3c8]
push eax
mov eax, dword [esi + 0x2c]
add ecx, 0xffffff60
add eax, ecx
mov ecx, dword [ebp - 0x3e8]
push 4
push 4
push eax
mov eax, dword [esi + 0x28]
add ecx, 0xffffffc0
add eax, ecx
push eax
mov eax, dword [ebp - 0x3c0]
mov ecx, dword [eax + 8]
call dword [edi + 0x7c]
mov edx, dword [ebp - 0x3d4]
inc edx
mov dword [ebp - 0x3d4], edx
cmp edx, 0x100
jl 0x509090
mov edi, dword [ebp - 0x3c0]
cmp byte [edi + 0x353], 0
je 0x509644
cmp dword [edi + 0x124], 0
mov dword [ebp - 0x3e8], 0
jle 0x509644
movss xmm5, dword [0x60dc98]
xor esi, esi
mov dword [ebp - 0x3cc], esi
nop dword [eax + eax]
mov edi, dword [edi + 0x120]
mov eax, dword [esi + edi + 0xc]
mov ecx, dword [esi + edi + 0x10]
mov esi, dword [esi + edi]
mov dword [ebp - 0x3d4], esi
lea edx, [eax*8 + 8]
mov eax, dword [ebp - 0x3c0]
movd xmm1, edx
cvtdq2ps xmm1, xmm1
mov eax, dword [eax + 0xf4]
movd xmm3, esi
movss xmm4, dword [eax + ecx*4 + 0x954]
movaps xmm0, xmm1
movss xmm2, dword [eax + ecx*4 + 0xef4]
mulss xmm0, xmm4
mov esi, dword [ebp - 0x3c0]
mulss xmm1, xmm2
cvttss2si eax, xmm0
mov edx, dword [esi + 8]
mov edx, dword [edx]
cvtdq2ps xmm3, xmm3
mov dword [ebp - 0x3d0], eax
cvttss2si eax, xmm1
movaps xmm1, xmm4
movss dword [ebp - 0x3dc], xmm2
mov dword [ebp - 0x3ec], eax
mov eax, dword [ebp - 0x3cc]
mulss xmm1, xmm5
mulss xmm2, xmm5
mov edi, dword [eax + edi + 4]
mov dword [ebp - 0x3e0], edi
movss dword [ebp - 0x3f0], xmm4
movss dword [ebp - 0x430], xmm2
movd xmm0, edi
mov edi, dword [ebp - 0x3cc]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x420], xmm1
addss xmm0, xmm1
cvttss2si eax, xmm0
movaps xmm0, xmm3
sub eax, dword [esi + 0x38]
addss xmm0, xmm2
mov dword [ebp - 0x3c8], eax
mov eax, dword [esi + 0x120]
cvttss2si ecx, xmm0
sub ecx, dword [esi + 0x34]
mov esi, 0xff0000
test byte [edi + eax + 8], 8
mov eax, 0xff
cmovne eax, esi
mov esi, dword [ebp - 0x3c0]
push eax
mov eax, dword [ebp - 0x3c8]
add eax, dword [ebp - 0x3ec]
push eax
mov eax, dword [ebp - 0x3d0]
add eax, ecx
sub ecx, dword [ebp - 0x3d0]
push eax
mov eax, dword [ebp - 0x3c8]
sub eax, dword [ebp - 0x3ec]
push eax
push ecx
mov ecx, dword [esi + 8]
call dword [edx + 0xb4]
mov edi, dword [ebp - 0x3e0]
movss xmm0, dword [ebp - 0x3f0]
mulss xmm0, dword [0x60dc94]
mov edx, dword [esi + 8]
movss xmm2, dword [ebp - 0x3dc]
mulss xmm2, dword [0x60dc94]
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x3f0], xmm0
addss xmm0, xmm1
movss dword [ebp - 0x3dc], xmm2
movd xmm1, dword [ebp - 0x3d4]
cvttss2si eax, xmm0
movaps xmm0, xmm2
sub eax, dword [esi + 0x38]
mov dword [ebp - 0x3c8], eax
cvtdq2ps xmm1, xmm1
mov eax, esi
mov edx, dword [edx]
mov esi, dword [ebp - 0x3cc]
addss xmm0, xmm1
cvttss2si ecx, xmm0
sub ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x120]
test byte [esi + eax + 8], 4
mov esi, 0xff0000
mov eax, 0xff
cmovne eax, esi
mov esi, dword [ebp - 0x3c0]
push eax
mov eax, dword [ebp - 0x3c8]
add eax, dword [ebp - 0x3ec]
push eax
mov eax, dword [ebp - 0x3d0]
add eax, ecx
sub ecx, dword [ebp - 0x3d0]
push eax
mov eax, dword [ebp - 0x3c8]
sub eax, dword [ebp - 0x3ec]
push eax
push ecx
mov ecx, dword [esi + 8]
call dword [edx + 0xb4]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov edx, dword [esi + 8]
mov edx, dword [edx]
subss xmm0, dword [ebp - 0x420]
cvttss2si eax, xmm0
movd xmm0, dword [ebp - 0x3d4]
sub eax, dword [esi + 0x38]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x3c8], eax
mov eax, esi
mov esi, dword [ebp - 0x3cc]
subss xmm0, dword [ebp - 0x430]
cvttss2si ecx, xmm0
sub ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x120]
test byte [esi + eax + 8], 2
mov eax, 0xff
mov esi, 0xff0000
cmovne eax, esi
push eax
mov eax, dword [ebp - 0x3c8]
add eax, dword [ebp - 0x3ec]
push eax
mov eax, dword [ebp - 0x3d0]
add eax, ecx
sub ecx, dword [ebp - 0x3d0]
push eax
mov eax, dword [ebp - 0x3c8]
sub eax, dword [ebp - 0x3ec]
push eax
mov eax, dword [ebp - 0x3c0]
push ecx
mov ecx, dword [eax + 8]
call dword [edx + 0xb4]
movd xmm0, dword [ebp - 0x3d4]
cvtdq2ps xmm0, xmm0
mov edx, dword [ebp - 0x3cc]
subss xmm0, dword [ebp - 0x3dc]
cvttss2si eax, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp - 0x3c0]
mov edi, dword [ebp - 0x3e0]
subss xmm0, dword [ebp - 0x3f0]
sub edi, dword [eax + 0x34]
mov ecx, dword [eax + 8]
cvttss2si esi, xmm0
sub esi, dword [eax + 0x38]
mov eax, dword [eax + 0x120]
test byte [edx + eax + 8], 1
mov eax, 0xff
mov edx, 0xff0000
cmovne eax, edx
mov edx, dword [ecx]
push eax
mov eax, dword [ebp - 0x3ec]
add eax, esi
sub esi, dword [ebp - 0x3ec]
push eax
mov eax, dword [ebp - 0x3d0]
add eax, edi
sub edi, dword [ebp - 0x3d0]
push eax
push esi
push edi
call dword [edx + 0xb4]
mov edi, dword [ebp - 0x3c0]
mov ecx, dword [ebp - 0x3cc]
mov eax, dword [edi + 0x120]
movzx eax, byte [ecx + eax + 0x10]
push eax
lea eax, [ebp - 0x3c4]
push str._02X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
add esp, 0xc
mov edx, dword [edi + 0x120]
mov eax, 0xffffff
mov esi, dword [ecx]
mov ecx, dword [ebp - 0x3cc]
cmp byte [ecx + edx + 0x14], 0
mov ecx, 0xf2d141
cmovne eax, ecx
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x3c4]
push eax
mov eax, dword [ebp - 0x3cc]
mov eax, dword [eax + edx + 4]
sub eax, dword [edi + 0x38]
sub eax, 4
push eax
mov eax, dword [ebp - 0x3cc]
mov eax, dword [eax + edx]
sub eax, dword [edi + 0x34]
sub eax, 8
push eax
call dword [esi + 0xb0]
mov eax, dword [edi + 0x120]
mov esi, dword [ebp - 0x3cc]
mov ecx, dword [esi + eax + 0xc]
shl ecx, 3
mov dword [ebp - 0x3d4], ecx
mov dword [ebp - 0x3c8], ecx
mov ecx, dword [esi + eax + 0x10]
mov eax, ecx
and eax, 0xc0
je 0x509584
cmp eax, 0x80
je 0x509584
mov dword [ebp - 0x3c8], 0x10
jmp 0x50958e
mov dword [ebp - 0x3d4], 0x10
cmp eax, ecx
jne 0x50961a
mov ecx, dword [edi + 8]
push 0x80
mov edx, dword [ecx]
call dword [edx + 0x50]
mov eax, dword [edi + 8]
mov esi, dword [edi + 0x120]
mov ecx, dword [ebp - 0x3cc]
push 0xcc53d1
mov edi, dword [eax]
mov eax, dword [ebp - 0x3c8]
mov ecx, dword [ecx + esi + 4]
push eax
push dword [ebp - 0x3d4]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov eax, dword [ebp - 0x3c0]
sub ecx, dword [eax + 0x38]
mov eax, dword [ebp - 0x3d4]
push ecx
mov ecx, dword [ebp - 0x3cc]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ecx + esi]
sub edx, eax
mov eax, dword [ebp - 0x3c0]
sub edx, dword [eax + 0x34]
mov ecx, dword [eax + 8]
push edx
call dword [edi + 0x7c]
mov edi, dword [ebp - 0x3c0]
push 0xff
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
mov esi, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x3e8]
add esi, 0x18
movss xmm5, dword [0x60dc98]
inc eax
mov dword [ebp - 0x3e8], eax
mov dword [ebp - 0x3cc], esi
cmp eax, dword [edi + 0x124]
jl 0x5091b0
cmp byte [edi + 0x354], 0
je 0x509ddf
xor esi, esi
cmp byte [edi + 0x355], 0
je 0x50973a
mov ecx, dword [edi + 8]
push esi
push 0x23
push 0xc8
mov eax, dword [ecx]
push esi
push esi
call dword [eax + 0x7c]
xor eax, eax
mov dword [ebp - 0x3d4], eax
cmp dword [edi + 0x11c], eax
jle 0x50973a
nop word [eax + eax]
movss xmm0, dword [eax*4 + 0x64d2b8]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
lea eax, [ebp - 0x354]
push str.Player__d_Update:__0.2f_ms
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea edx, [ebp - 0x354]
add esp, 0x14
mov eax, dword [ecx]
push 0xffffff
push edx
push esi
push 0
call dword [eax + 0xb0]
mov eax, dword [ebp - 0x3d4]
sub esp, 8
add esi, 8
movss xmm0, dword [eax*4 + 0x64d318]
lea eax, [ebp - 0x354]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.____Late_Update:__0.2f_ms
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea edx, [ebp - 0x354]
add esp, 0x10
mov eax, dword [ecx]
push 0xffffff
push edx
push esi
push 0
call dword [eax + 0xb0]
mov eax, dword [ebp - 0x3d4]
add esi, 0xa
inc eax
mov dword [ebp - 0x3d4], eax
cmp eax, dword [edi + 0x11c]
jl 0x509690
mov edx, dword [edi + 0xf4]
mov edi, dword [edi + 0x34]
mov dword [ebp - 0x3e0], edi
mov eax, dword [edx + 0x79c]
push dword [edx + 0x7dc]
push dword [edx + 0x7d8]
movzx esi, word [eax]
mov eax, dword [edx + 0x7a0]
mov dword [ebp - 0x3c8], esi
movsx esi, si
movsx ecx, word [eax]
mov eax, dword [ebp - 0x3c0]
push ecx
push esi
push str._04X__04X___02X__d_
mov edi, dword [eax + 0x38]
lea eax, [ecx - 0x20]
cmp eax, edi
cmovge edi, eax
lea eax, [ebp - 0x1a0]
push eax
mov dword [ebp - 0x430], edi
call fcn.004a75e9
mov eax, dword [ebp - 0x3c0]
add esp, 0x18
mov edi, dword [ebp - 0x3e0]
movzx ecx, di
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x3c8]
movzx eax, ax
mov dword [ebp - 0x420], esi
mov esi, dword [ebp - 0x3c8]
movsx edx, si
mov esi, dword [ebp - 0x420]
cmp edx, edi
mov edi, dword [ebp - 0x430]
cmovge ecx, eax
movsx eax, cx
mov ecx, dword [ebp - 0x3c0]
mov edx, dword [esi]
mov dword [ebp - 0x3c4], eax
lea eax, [ebp - 0x1a0]
push 0xffffff
push eax
mov eax, edi
sub eax, dword [ecx + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [ecx + 0x34]
mov ecx, esi
add eax, 0x24
push eax
call dword [edx + 0xb0]
lea esi, [edi + 8]
mov edi, dword [ebp - 0x3c0]
lea eax, [ebp - 0x1a0]
push dword [edi + 0x38]
push dword [edi + 0x34]
push str._04X__04X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0x10
mov edx, dword [ecx]
push 0xffffff
push eax
mov eax, esi
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x7f4]
push dword [eax + 0x7f0]
push str._04X__04X
lea eax, [ebp - 0x1a0]
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0x10
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 8]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4ac]
lea eax, [ebp - 0x1a0]
push str.Sensor_A:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xff00
push eax
lea eax, [esi + 0x10]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4b0]
lea eax, [ebp - 0x1a0]
push str.Sensor_B:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xff99
push eax
lea eax, [esi + 0x18]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4b4]
lea eax, [ebp - 0x1a0]
push str.Sensor_C:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0x99ff
push eax
lea eax, [esi + 0x20]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4b8]
lea eax, [ebp - 0x1a0]
push str.Sensor_D:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffff00
push eax
lea eax, [esi + 0x28]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4bc]
lea eax, [ebp - 0x1a0]
push str.Sensor_E:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xff00ff
push eax
lea eax, [esi + 0x30]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x4c0]
lea eax, [ebp - 0x1a0]
push str.Sensor_F:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xff4444
push eax
lea eax, [esi + 0x38]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
mov edx, str.FALSE
mov ecx, str.TRUE
cmp byte [eax + 0x8c6], 0
lea eax, [ebp - 0x1a0]
cmove ecx, edx
push ecx
push str.Ground:__s
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x40]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
movsx eax, word [eax + 0x7e2]
push eax
lea eax, [ebp - 0x1a0]
push str.GSP:__X
push eax
call fcn.004a75e9
mov eax, dword [edi + 0xf4]
add esp, 0xc
movzx eax, word [eax + 0x7e2]
test ax, ax
cwde
js 0x509b11
push eax
push str.GSP:__X
jmp 0x509b19
neg eax
push eax
push str.GSP:___X
lea eax, [ebp - 0x1a0]
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x48]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x510]
lea eax, [ebp - 0x1a0]
push str.Action:__X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x50]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
movzx eax, word [eax + 0xea]
test ax, ax
cwde
js 0x509bbb
push eax
push str.XSP:__X
jmp 0x509bc3
neg eax
push eax
push str.XSP:___X
lea eax, [ebp - 0x1a0]
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xff4444
push eax
lea eax, [esi + 0x58]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
movzx eax, word [eax + 0xec]
test ax, ax
cwde
js 0x509c19
push eax
push str.YSP:__X
jmp 0x509c21
neg eax
push eax
push str.YSP:___X
lea eax, [ebp - 0x1a0]
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0x8888ff
push eax
lea eax, [esi + 0x60]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x8d0]
lea eax, [ebp - 0x1a0]
push str.Layer:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x68]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
mov eax, dword [eax + 0x460]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
push eax
lea eax, [ebp - 0x1a0]
push str.Frame:__d
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x70]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
mov eax, dword [edi + 0xf4]
push dword [eax + 0x8e4]
lea eax, [ebp - 0x1a0]
push str.UnderwaterTimer:__X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x78]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
push dword [edi + 0x134]
lea eax, [ebp - 0x1a0]
push str.LevelTriggerFlag:__X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1a0]
add esp, 0xc
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi + 0x80]
sub eax, dword [edi + 0x38]
dec eax
push eax
mov eax, dword [ebp - 0x3c4]
sub eax, dword [edi + 0x34]
add eax, 0x24
push eax
call dword [edx + 0xb0]
push dword [edi + 0x130]
lea eax, [ebp - 0x1a0]
add esi, 0x88
push str.RoutineNumber:__X
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea edx, [ebp - 0x1a0]
sub esi, dword [edi + 0x38]
add esp, 0xc
dec esi
mov eax, dword [ecx]
push 0xffffff
push edx
mov edx, dword [ebp - 0x3c4]
sub edx, dword [edi + 0x34]
push esi
add edx, 0x24
push edx
call dword [eax + 0xb0]
cmp byte [edi + 0x356], 0
je 0x50a225
mov esi, dword [edi + 4]
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x2c]
cdq
sub eax, edx
mov ecx, dword [edi + 0x20]
sar eax, 1
sub ecx, eax
mov eax, dword [esi + 0x28]
cdq
push ecx
mov ecx, dword [edi + 0x1c]
sub eax, edx
sar eax, 1
sub ecx, eax
push ecx
call fcn.004a5cc6
push eax
mov dword [ebp - 0x430], eax
lea eax, [ebp - 0x1d4]
push str.Angle__02X
push eax
call fcn.004a75e9
mov esi, dword [ebp - 0x3c0]
lea eax, [ebp - 0x1d4]
add esp, 0x14
mov ecx, dword [esi + 8]
push 0xffff00
push eax
push 0x78
mov edx, dword [ecx]
push 4
call dword [edx + 0xb0]
mov eax, dword [esi + 8]
mov eax, dword [eax]
add eax, 0xb4
mov dword [ebp - 0x420], eax
mov eax, dword [esi + 0x64]
sar eax, 2
push eax
call fcn.004a72e2
mov ecx, dword [esi + 0x64]
sar ecx, 2
sar eax, 0xb
push ecx
mov dword [ebp - 0x3e0], eax
call fcn.004a760c
mov esi, dword [esi + 4]
mov ecx, eax
add esp, 8
sar ecx, 0xb
mov eax, dword [esi + 0x28]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp - 0x3c0]
push 0xffffff
sar edi, 1
add ecx, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x3e0]
push eax
mov eax, dword [esi + 0x2c]
cdq
sub eax, edx
push ecx
sar eax, 1
push eax
mov eax, dword [ebp - 0x420]
push edi
mov edi, dword [ebp - 0x3c0]
mov ecx, dword [edi + 8]
call dword [eax]
mov eax, dword [edi + 8]
mov eax, dword [eax]
add eax, 0xb4
mov dword [ebp - 0x420], eax
mov esi, dword [ebp - 0x430]
push esi
call fcn.004a72e2
sar eax, 0xa
push esi
mov dword [ebp - 0x3e0], eax
call fcn.004a760c
mov esi, dword [edi + 4]
mov ecx, eax
add esp, 8
sar ecx, 0xa
mov eax, dword [esi + 0x28]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp - 0x3c0]
push 0xff00ff
sar edi, 1
add ecx, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x3e0]
push eax
mov eax, dword [esi + 0x2c]
mov esi, dword [ebp - 0x3c0]
cdq
sub eax, edx
push ecx
mov ecx, dword [esi + 8]
sar eax, 1
push eax
mov eax, dword [ebp - 0x420]
push edi
call dword [eax]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
push 0xff0000
mov eax, dword [eax + 0x10]
mov edi, dword [ecx]
mov edx, dword [eax + 0x20]
mov esi, dword [eax + 0x1c]
lea eax, [edx + 0xa]
push eax
lea eax, [esi + 0xa]
push eax
lea eax, [edx - 0xa]
push eax
lea eax, [esi - 0xa]
push eax
call dword [edi + 0xb4]
mov eax, dword [ebp - 0x3c0]
push 0xff0000
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
mov edi, dword [ecx]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0x20]
mov esi, dword [eax + 0x1c]
lea eax, [edx + 0xa]
push eax
lea eax, [esi - 0xa]
push eax
lea eax, [edx - 0xa]
push eax
lea eax, [esi + 0xa]
push eax
call dword [edi + 0xb4]
mov edi, dword [ebp - 0x3c0]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x144]
mov esi, dword [eax + 0x10]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x3e0], esi
mov edx, dword [esi + 0x1c]
add eax, dword [esi + 0x20]
add edx, dword [edi + 0x34]
mov esi, eax
and esi, 0xfffffff0
test ecx, ecx
cmove esi, eax
mov eax, dword [ebp - 0x3e0]
mov dword [ebp - 0x3d0], esi
mov esi, edx
and esi, 0xfffffff0
test ecx, ecx
mov ecx, dword [ebp - 0x3d0]
cmove esi, edx
cmp byte [eax + 0x25], 0
mov dword [ebp - 0x3dc], esi
je 0x50a00d
mov dword [edi + 0x21c], esi
mov dword [edi + 0x220], ecx
jmp 0x50a027
cmp byte [eax + 0x26], 0
je 0x50a027
mov dword [edi + 0x21c], 0xffffffff
mov dword [edi + 0x220], 0xffffffff
mov edx, dword [edi + 0x21c]
cmp edx, 0xffffffff
jne 0x50a04c
push ecx
push esi
push ecx
push esi
lea eax, [ebp - 0x1d4]
push str.X__d_Y__d___04X__04X_
push eax
call fcn.004a75e9
add esp, 0x18
jmp 0x50a0b8
mov eax, ecx
sub eax, dword [edi + 0x220]
push eax
mov eax, esi
sub eax, edx
push eax
push ecx
push esi
lea eax, [ebp - 0x1d4]
push str.X__d_Y__d___d__d_
push eax
call fcn.004a75e9
mov edx, dword [edi + 0x220]
add esp, 0x18
mov eax, dword [ebp - 0x3d0]
mov esi, dword [edi + 0x21c]
sub eax, edx
mov ecx, dword [edi + 8]
push 0xff00ff
push eax
mov eax, dword [ebp - 0x3dc]
mov edi, dword [ecx]
sub eax, esi
push eax
mov eax, dword [ebp - 0x3c0]
sub edx, dword [eax + 0x38]
sub esi, dword [eax + 0x34]
push edx
push esi
call dword [edi + 0x84]
mov edi, dword [ebp - 0x3c0]
mov esi, dword [ebp - 0x3dc]
mov eax, dword [edi + 0x1c]
xor ecx, ecx
sar dword [ebp - 0x3d0], 4
sar esi, 4
mov dword [ebp - 0x3dc], esi
mov dword [ebp - 0x3c8], 0
cmp cx, word [eax]
jge 0x50a225
mov dword [ebp - 0x3e8], ecx
mov esi, dword [edi + 0x1c]
add ecx, 4
add esi, ecx
lea ecx, [ebp - 0x88]
push esi
call fcn.004a74e5
movzx eax, byte [esi + 0x1c]
mov byte [ebp - 0x6c], al
movzx eax, byte [esi + 0x1d]
mov byte [ebp - 0x6b], al
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x5c], eax
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x58], edx
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0x48], ecx
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x38], eax
movzx eax, byte [esi + 0x54]
mov byte [ebp - 0x34], al
movzx eax, byte [esi + 0x55]
mov byte [ebp - 0x33], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x2c], eax
movzx eax, byte [esi + 0x60]
mov byte [ebp - 0x28], al
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x24], eax
imul edx, dword [ebp - 0x3d0]
movups xmm0, xmmword [ebp - 0x88]
mov byte [ebp - 4], 0xb
add edx, dword [ebp - 0x3dc]
movsx eax, word [ecx + edx*2]
and eax, 0x3ff
push eax
mov eax, dword [ebp - 0x70]
sub esp, 0x1c
mov ecx, esp
push str._s:__04X
movups xmmword [ecx], xmm0
movq xmm0, qword [ebp - 0x78]
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
lea eax, [ebp - 0x1d4]
push eax
call fcn.004a75e9
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x1d4]
mov esi, dword [ebp - 0x3c8]
add esp, 0x28
mov edx, dword [ecx]
push 0xffffff
push eax
lea eax, [esi*8]
push eax
push 0
call dword [edx + 0xb0]
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0
call fcn.004a712f
mov eax, dword [edi + 0x1c]
inc esi
mov ecx, dword [ebp - 0x3e8]
add ecx, 0x68
mov dword [ebp - 0x3c8], esi
mov dword [ebp - 0x3e8], ecx
movsx eax, word [eax]
cmp esi, eax
jl 0x50a0e6
mov ecx, edi
call fcn.004a5afa
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x60]
call eax
mov ecx, dword [edi + 8]
mov esi, eax
push 0
mov edx, dword [ecx]
call dword [edx + 0x5c]
mov ecx, edi
call fcn.004a7ddc
mov ecx, dword [edi + 8]
push esi
mov eax, dword [ecx]
call dword [eax + 0x5c]
lea ecx, [ebp - 0x3bc]
call fcn.004a712f
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7062
mov esp, ebp
pop ebp
ret
call fcn.004a57e9
nop dword [eax]
in eax, dx
mov edx, dword [eax]
int1
mov edx, dword [eax]
clc
mov edx, dword [eax]
in eax, dx
mov edx, dword [eax]
in eax, dx
mov edx, dword [eax]
int1
mov edx, dword [eax]
int3