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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b17bb
mov eax, dword fs:[0]
push eax
sub esp, 0x378
mov eax, dword [section..data]
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 - 0x2fc], edi
mov esi, dword [edi + 0x38c]
mov eax, dword [ebp + 0xc]
mov edx, dword [0x100f0828]
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x314], edx
test esi, esi
je 0x10028da9
test dl, 1
je 0x10028dc9
mov eax, 0xcccccccd
mul edx
shr edx, 4
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x314]
shl ecx, 2
mov eax, edx
sub eax, ecx
jne 0x1002b966
xor cl, cl
mov byte [ebp - 0x2d9], cl
cmp byte [edi + 0x394], cl
je 0x10028fc2
cmp esi, 3
je 0x10028dfe
mov esi, dword [ebp - 0x314]
mov eax, 0xcccccccd
mul edx
mov eax, esi
shr edx, 5
lea ecx, [edx + edx*4]
shl ecx, 3
sub eax, ecx
jne 0x10028e6c
mov ecx, edi
call fcn.1002b990
test al, al
je 0x10028e43
mov eax, dword [edi + 0x38c]
cmp eax, 3
je 0x10028e66
mov cl, 1
mov byte [ebp - 0x2d9], cl
cmp eax, 1
je 0x10028e26
cmp eax, 2
jne 0x10028e31
call fcn.10028ca0
mov cl, byte [ebp - 0x2d9]
mov esi, dword [0x100f0828]
mov dword [edi + 0x38c], 3
jmp 0x10028e72
cmp dword [edi + 0x38c], 3
jne 0x10028e66
mov esi, dword [0x100f0828]
mov cl, 1
mov byte [ebp - 0x2d9], cl
mov dword [edi + 0x38c], 0
jmp 0x10028e72
mov esi, dword [0x100f0828]
mov cl, byte [ebp - 0x2d9]
cmp dword [edi], 0
je 0x1002929f
test cl, cl
jne 0x100292ac
cmp dword [edi + 0x38c], 3
je 0x10029008
mov eax, 0xcccccccd
mul esi
mov eax, esi
shr edx, 4
lea ecx, [edx + edx*4]
shl ecx, 2
sub eax, ecx
jne 0x10029008
xor esi, esi
lea eax, [ebp - 0x20c]
push 0x1fc
push esi
push eax
mov dword [ebp - 0x210], esi
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x2e4], 0x40
lea eax, [ebp - 0x2e4]
push 8
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.USER32.dll_GetRawInputDeviceList]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x2f8], eax
test ecx, ecx
jle 0x10029260
nop
lea ecx, [ebp - 0x308]
mov dword [ebp - 0x358], 0
push ecx
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x33c], 0
push ecx
push 0x2000000b
push dword [ebp + eax*8 - 0x210]
xorps xmm0, xmm0
mov dword [ebp - 0x308], 0x20
movdqu xmmword [ebp - 0x354], xmm0
movq qword [ebp - 0x344], xmm0
call dword [sym.imp.USER32.dll_GetRawInputDeviceInfoW]
cmp dword [ebp - 0x354], 2
jne 0x10028f7d
cmp word [ebp - 0x344], 1
jne 0x10028f7d
mov ax, word [ebp - 0x342]
cmp ax, 4
je 0x10028f9c
cmp ax, 5
mov eax, 5
cmove esi, eax
mov eax, dword [ebp - 0x2f8]
inc eax
mov dword [ebp - 0x2f8], eax
cmp eax, dword [ebp - 0x310]
jl 0x10028f00
cmp si, 4
jne 0x10028fcd
cmp dword [edi + 0x38c], 1
je 0x10029002
call fcn.10028ca0
push 4
mov ecx, edi
call fcn.10028c50
mov dword [edi + 0x38c], 1
jmp 0x100292ac
mov esi, dword [ebp - 0x314]
jmp 0x10028e72
cmp si, 5
jne 0x10028ff9
cmp dword [edi + 0x38c], 2
je 0x10029002
call fcn.10028ca0
push 5
mov ecx, edi
call fcn.10028c50
mov dword [edi + 0x38c], 2
jmp 0x100292ac
test si, si
je 0x10029260
mov esi, dword [0x100f0828]
cmp byte [edi + 0x428], 0
je 0x1002b958
xor eax, eax
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 4], eax
lea eax, [edi + 0x3dc]
mov dword [ebp - 0x314], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x2f8], ecx
cmp ecx, eax
je 0x1002907a
mov eax, dword [ecx + 0x10]
lea ecx, [ebp - 0x2f8]
mov byte [eax + edi + 0x364], 1
call fcn.1000a810
mov ecx, dword [ebp - 0x2f8]
cmp ecx, dword [edi + 0x3dc]
jne 0x10029056
cmp dword [edi + 0x3f4], 0
je 0x10029731
mov eax, 0xcccccccd
mul esi
shr edx, 4
lea eax, [edx + edx*4]
shl eax, 2
sub esi, eax
jne 0x10029731
mov ecx, dword [edi + 0x424]
call fcn.1001e500
test al, al
jne 0x100290d9
mov ecx, dword [edi + 0x424]
cmp dword [ecx + 0xeec], 0x12
jne 0x10029731
add ecx, 0xedc
mov edx, str.com.mobile.legends
call fcn.10012400
test al, al
je 0x10029731
mov eax, dword [edi + 0x424]
lea ecx, [ebp - 0x330]
push ecx
mov ecx, eax
mov dword [ebp - 0x308], eax
call fcn.10012dd0
mov eax, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x330]
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x33c], eax
movd xmm2, eax
movd xmm3, ecx
cvtdq2pd xmm2, xmm2
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x304], 0
cvtdq2pd xmm3, xmm3
divsd xmm3, xmm2
movapd xmm1, xmm3
movsd qword [ebp - 0x370], xmm3
subsd xmm1, qword [0x100d1018]
mulsd xmm1, qword [0x100d1120]
mulsd xmm1, qword [0x100d0f30]
addsd xmm1, qword [0x100d1110]
mulsd xmm1, xmm2
divsd xmm1, qword [0x100d1120]
cvttsd2si ecx, xmm1
mov dword [ebp - 0x300], ecx
imul ecx, eax, 0x1dc
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2e4], eax
mov eax, dword [edi + 0x3f0]
mov edi, eax
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x2f8], edi
mov esi, dword [eax]
mov dword [ebp - 0x30c], esi
cmp esi, eax
je 0x100294d2
mov edx, dword [ebp - 0x2fc]
movsd xmm4, qword [0x100d1020]
cvttsd2si ecx, xmm1
mov eax, dword [edx + 0x3f0]
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x330]
sub eax, ecx
mov dword [ebp - 0x2f8], eax
mov edi, edi
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x320], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.1001ffe0
mov eax, dword [ebp - 0x2f8]
cmp dword [ebp - 0x320], eax
jle 0x1002949f
mov ecx, dword [ebp - 0x32c]
mov eax, ecx
sub eax, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x31c]
cmp edx, eax
jle 0x1002949f
comisd xmm3, xmm4
jbe 0x10029424
movsd xmm2, qword [0x100d1048]
jmp 0x1002942c
cmp dword [edi + 0x38c], 1
jne 0x1002927f
mov byte [ebp - 0x2d9], 1
call fcn.10028ca0
mov dword [edi + 0x38c], 0
cmp dword [edi + 0x38c], 2
jne 0x10029299
call fcn.10028ca0
mov dword [edi + 0x38c], 0
jmp 0x100292ac
mov esi, dword [0x100f0828]
cmp byte [ebp - 0x2d9], 0
je 0x10029008
push dword [ebp - 0x324]
mov ecx, edi
call fcn.1002bfa0
mov ecx, dword [edi + 0x38c]
test ecx, ecx
jne 0x100292cb
mov dword [ebp - 0x30c], ecx
jmp 0x100292da
xor eax, eax
cmp ecx, 1
setne al
inc eax
mov dword [ebp - 0x30c], eax
mov dword [ebp - 0x304], 0
mov dword [ebp - 0x314], 0
test ecx, ecx
je 0x100293ff
push 0x1fc
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x210], 0
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x324], 0x40
lea eax, [ebp - 0x324]
push 8
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.USER32.dll_GetRawInputDeviceList]
xor esi, esi
mov dword [ebp - 0x308], eax
test eax, eax
jle 0x100293ff
jmp 0x10029350
lea eax, [ebp - 0x2e4]
mov dword [ebp - 0x358], 0
push eax
lea eax, [ebp - 0x358]
mov dword [ebp - 0x33c], 0
push eax
push 0x2000000b
push dword [ebp + esi*8 - 0x210]
xorps xmm0, xmm0
mov dword [ebp - 0x2e4], 0x20
movdqu xmmword [ebp - 0x354], xmm0
movq qword [ebp - 0x344], xmm0
call dword [sym.imp.USER32.dll_GetRawInputDeviceInfoW]
cmp dword [ebp - 0x354], 2
jne 0x100293d8
cmp word [ebp - 0x344], 1
jne 0x100293d8
mov eax, dword [ebp - 0x30c]
cmp eax, 1
jne 0x100293c9
cmp word [ebp - 0x342], 4
jmp 0x100293d6
cmp eax, 2
jne 0x100293d8
cmp word [ebp - 0x342], 5
je 0x100293e7
inc esi
cmp esi, dword [ebp - 0x308]
jl 0x10029350
jmp 0x100293ff
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x304], eax
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x314], eax
mov ecx, dword [edi + 0x414]
push dword [ebp - 0x314]
push dword [ebp - 0x304]
mov eax, dword [ecx]
push dword [ebp - 0x30c]
call dword [eax + 0x98]
jmp 0x1002b960
movsd xmm2, qword [0x100d1030]
mov eax, dword [ebp - 0x330]
sub eax, dword [ebp - 0x320]
movd xmm1, eax
mov eax, ecx
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [ebp - 0x310]
divsd xmm1, xmm0
comisd xmm1, xmm2
cmova eax, esi
comisd xmm3, xmm4
mov dword [ebp - 0x310], eax
jbe 0x10029473
movsd xmm0, qword [0x100d0fd0]
jmp 0x1002947b
movsd xmm0, qword [0x100d0f88]
comisd xmm0, xmm1
jbe 0x10029499
mov eax, dword [ebp - 0x2fc]
cmp edi, dword [eax + 0x3f0]
je 0x10029497
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x10029499
mov edi, esi
inc dword [ebp - 0x304]
lea ecx, [ebp - 0x30c]
call fcn.1000a810
mov esi, dword [ebp - 0x30c]
movsd xmm3, qword [ebp - 0x370]
movsd xmm4, qword [0x100d1020]
cmp esi, dword [ebp - 0x318]
jne 0x100291f0
mov dword [ebp - 0x2f8], edi
xor ecx, ecx
mov eax, 0x91a2b3c5
cmp dword [ebp - 0x304], 4
setl cl
lea ecx, [ecx*8 + 0x1c]
imul ecx, dword [ebp - 0x32c]
imul ecx
mov eax, dword [ebp - 0x308]
add edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [eax + 0xeec], 0x12
mov dword [ebp - 0x30c], ecx
jne 0x1002954b
lea ecx, [eax + 0xedc]
mov edx, str.com.mobile.legends
call fcn.10012400
test al, al
je 0x1002954b
mov eax, dword [ebp - 0x30c]
lea ecx, [eax + eax*2]
mov eax, 0x38e38e39
shl ecx, 4
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x30c], eax
mov esi, dword [ebp - 0x2fc]
mov eax, dword [ebp - 0x310]
cmp eax, dword [esi + 0x3f0]
je 0x1002956b
mov ecx, dword [eax + 0x24]
sub ecx, dword [ebp - 0x30c]
mov dword [eax + 0x1c], ecx
cmp edi, dword [esi + 0x3f0]
je 0x10029607
mov ecx, dword [esi + 0x424]
call fcn.1001e500
test al, al
jne 0x10029607
mov eax, dword [edi + 0x20]
mov ecx, dword [esi + 0x424]
mov dword [ebp - 0x320], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.1001ffe0
mov eax, dword [ebp - 0x330]
sub eax, dword [ebp - 0x320]
movd xmm1, eax
mov eax, dword [ebp - 0x32c]
sub eax, dword [ebp - 0x31c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
subsd xmm1, qword [0x100d0f78]
andpd xmm1, xmmword [0x100d1510]
comisd xmm1, xmmword [0x100d0e70]
jbe 0x10029607
mov eax, dword [edi + 0x20]
sub eax, dword [ebp - 0x30c]
mov dword [edi + 0x18], eax
cmp dword [ebp - 0x304], 4
mov edi, esi
jne 0x10029731
mov ecx, dword [edi + 0x424]
call fcn.1001e500
test al, al
jne 0x10029731
mov eax, dword [edi + 0x3f0]
mov edi, eax
mov dword [ebp - 0x304], eax
mov esi, dword [eax]
mov dword [ebp - 0x308], esi
cmp esi, eax
je 0x1002971b
mov eax, dword [ebp - 0x2fc]
mov ecx, dword [eax + 0x424]
mov eax, dword [eax + 0x3f0]
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x330]
sub eax, dword [ebp - 0x300]
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x300], eax
jmp 0x10029680
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x320], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x320]
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.1001ffe0
mov eax, dword [ebp - 0x300]
cmp dword [ebp - 0x320], eax
jle 0x100296f2
mov eax, dword [ebp - 0x32c]
sub eax, dword [ebp - 0x2e4]
cmp dword [ebp - 0x31c], eax
jle 0x100296f2
mov eax, dword [ebp - 0x2fc]
cmp edi, dword [eax + 0x3f0]
jne 0x100296e1
cmp esi, dword [ebp - 0x2f8]
je 0x100296f2
mov edi, esi
jmp 0x100296f2
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x100296f2
cmp esi, dword [ebp - 0x2f8]
cmovne edi, esi
lea ecx, [ebp - 0x308]
call fcn.1000a810
mov esi, dword [ebp - 0x308]
mov ecx, dword [ebp - 0x310]
cmp esi, dword [ebp - 0x318]
jne 0x10029680
mov eax, dword [ebp - 0x304]
cmp edi, eax
je 0x1002972b
mov eax, dword [edi + 0x20]
sub eax, dword [ebp - 0x30c]
mov dword [edi + 0x18], eax
mov edi, dword [ebp - 0x2fc]
push ecx
mov ecx, edi
call fcn.1002e8e0
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x2fc]
mov ecx, esi
push edi
call fcn.1002ec10
push edi
mov ecx, esi
call fcn.1002f360
push ecx
mov ecx, esi
call fcn.1002f260
push ecx
mov ecx, esi
call fcn.1002e710
push edi
mov ecx, esi
call fcn.1002eb30
push edi
mov ecx, esi
call fcn.1002f060
push ecx
mov ecx, esi
call fcn.1002f180
mov ecx, esi
mov eax, dword [ecx + 0x3b4]
mov esi, dword [eax]
cmp esi, eax
je 0x10029a07
lea esp, [esp]
cmp dword [esi + 0x24], 0
je 0x100299b8
mov eax, dword [esi + 0x20]
mov edi, dword [ecx + 0x424]
mov eax, dword [eax]
movdqu xmm0, xmmword [eax + 8]
movdqu xmmword [ebp - 0x348], xmm0
movdqu xmmword [ebp - 0x268], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movdqu xmm0, xmmword [ebp - 0x348]
cvttsd2si ecx, xmm1
psrldq xmm0, 4
movd eax, xmm0
add eax, ecx
mov dword [ebp - 0x264], eax
mov eax, dword [sym.imp.MSVCR120.dll_rand]
call eax
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
mov edx, dword [ebp - 0x2f4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x260], eax
lea eax, [ebp - 0x268]
cmp eax, edi
jae 0x10029909
cmp edx, eax
ja 0x10029909
mov ecx, dword [ebp - 0x2e0]
sub eax, edx
sar eax, 4
mov dword [ebp - 0x2e4], eax
cmp edi, ecx
jne 0x100298f8
mov eax, ecx
sub eax, edi
sar eax, 4
cmp eax, 1
jae 0x100298f2
sub edi, edx
mov eax, 0xfffffff
sar edi, 4
sub eax, edi
cmp eax, 1
jb 0x10029b8b
sub ecx, edx
mov eax, 0xfffffff
sar ecx, 4
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x100298c7
xor ecx, ecx
jmp 0x100298c9
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x2f4]
call fcn.10012380
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2f4]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2e4]
add eax, eax
test edi, edi
je 0x10029982
movdqu xmm0, xmmword [edx + eax*8]
jmp 0x1002997e
mov ecx, dword [ebp - 0x2e0]
cmp edi, ecx
jne 0x10029972
mov eax, ecx
sub eax, edi
sar eax, 4
cmp eax, 1
jae 0x10029972
sub edi, edx
mov eax, 0xfffffff
sar edi, 4
sub eax, edi
cmp eax, 1
jb 0x10029b8b
sub ecx, edx
mov eax, 0xfffffff
sar ecx, 4
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x1002994d
xor ecx, ecx
jmp 0x1002994f
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x2f4]
call fcn.10012380
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x10029982
movdqu xmm0, xmmword [ebp - 0x268]
movdqu xmmword [edi], xmm0
mov eax, dword [esi + 0x20]
add edi, 0x10
mov dword [ebp - 0x2f0], edi
mov dword [ebp - 0x2e8], edi
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x24]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov ecx, dword [ebp - 0x2fc]
add esp, 4
cmp byte [esi + 0xd], 0
jne 0x100299f8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x100299dd
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x100299f8
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x100299d1
jmp 0x100299f8
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100299f6
cmp esi, dword [eax + 8]
jne 0x100299f6
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100299e6
mov esi, eax
cmp esi, dword [ecx + 0x3b4]
jne 0x10029790
mov edi, dword [ebp + 8]
mov eax, dword [ecx + 0x3bc]
mov esi, dword [eax]
cmp esi, eax
je 0x1002a894
jmp 0x10029a20
cmp dword [esi + 0x3c], 0
je 0x10029df1
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
cmp edi, dword [eax + 8]
jae 0x10029a59
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1002a83f
jb 0x10029a53
cmp edx, dword [eax + 8]
jae 0x1002a83f
mov ecx, dword [ebp - 0x2fc]
cmp dword [esi + 0x28], 0
movdqu xmm0, xmmword [eax + 0xc]
movdqu xmmword [ebp - 0x228], xmm0
jne 0x10029c55
mov eax, dword [sym.imp.MSVCR120.dll_rand]
mov edi, dword [ecx + 0x424]
movdqu xmmword [ebp - 0x2a8], xmm0
call eax
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movdqu xmm0, xmmword [ebp - 0x228]
cvttsd2si ecx, xmm1
psrldq xmm0, 4
movd eax, xmm0
add eax, ecx
mov dword [ebp - 0x2a4], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
mov edx, dword [ebp - 0x2f4]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x2a8]
cmp eax, edi
jae 0x10029bdb
cmp edx, eax
ja 0x10029bdb
mov ecx, dword [ebp - 0x2e0]
sub eax, edx
sar eax, 4
mov dword [ebp - 0x2e4], eax
cmp edi, ecx
jne 0x10029bc7
mov eax, ecx
sub eax, edi
sar eax, 4
cmp eax, 1
jae 0x10029bc1
sub edi, edx
mov eax, 0xfffffff
sar edi, 4
sub eax, edi
cmp eax, 1
jb 0x10029b8b
sub ecx, edx
mov eax, 0xfffffff
sar ecx, 4
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x10029b96
xor ecx, ecx
jmp 0x10029b98
push str.vector_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x2f4]
call fcn.10012380
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2f4]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2e4]
add eax, eax
test edi, edi
je 0x10029db9
movdqu xmm0, xmmword [edx + eax*8]
jmp 0x10029db5
mov ecx, dword [ebp - 0x2e0]
cmp edi, ecx
jne 0x10029c40
mov eax, ecx
sub eax, edi
sar eax, 4
cmp eax, 1
jae 0x10029c40
sub edi, edx
mov eax, 0xfffffff
sar edi, 4
sub eax, edi
cmp eax, 1
jb 0x10029b8b
sub ecx, edx
mov eax, 0xfffffff
sar ecx, 4
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x10029c1b
xor ecx, ecx
jmp 0x10029c1d
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x2f4]
call fcn.10012380
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x10029db9
movdqu xmm0, xmmword [ebp - 0x2a8]
jmp 0x10029db5
mov ecx, dword [esi + 0x28]
mov edx, dword [ebp - 0x2fc]
movdqu xmmword [ebp - 0x248], xmm0
lea eax, [ecx + 1]
mov edx, dword [edx + 0x424]
mov dword [ebp - 0x2e4], eax
mov eax, ecx
mov dword [ebp - 0x308], edx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, edi
idiv dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x308]
sub ecx, edx
movd xmm1, dword [eax + 0x10]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movdqu xmm0, xmmword [ebp - 0x228]
cvttsd2si ecx, xmm1
psrldq xmm0, 4
movd eax, xmm0
add eax, ecx
mov dword [ebp - 0x244], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x308]
sub edi, edx
mov edx, dword [ebp - 0x2f4]
movd xmm1, dword [eax + 0x10]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x240], eax
lea eax, [ebp - 0x248]
cmp eax, edi
jae 0x10029d40
cmp edx, eax
ja 0x10029d40
jmp 0x10029b3c
mov ecx, dword [ebp - 0x2e0]
cmp edi, ecx
jne 0x10029da9
mov eax, ecx
sub eax, edi
sar eax, 4
cmp eax, 1
jae 0x10029da9
sub edi, edx
mov eax, 0xfffffff
sar edi, 4
sub eax, edi
cmp eax, 1
jb 0x10029b8b
sub ecx, edx
mov eax, 0xfffffff
sar ecx, 4
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x10029d84
xor ecx, ecx
jmp 0x10029d86
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x2f4]
call fcn.10012380
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x10029db9
movdqu xmm0, xmmword [ebp - 0x248]
movdqu xmmword [edi], xmm0
mov eax, dword [esi + 0x38]
add edi, 0x10
mov dword [ebp - 0x2f0], edi
mov dword [ebp - 0x2e8], edi
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x3c]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov edi, dword [ebp + 8]
add esp, 4
jmp 0x1002a83f
cmp byte [esi + 0x14], 0
je 0x1002a83f
cmp dword [ecx + 0x408], 0
je 0x10029e4e
mov eax, dword [ecx + 0x41c]
xor edx, edx
sub eax, dword [ecx + 0x418]
sar eax, 2
test eax, eax
je 0x10029e4e
mov eax, dword [ecx + 0x41c]
sub eax, dword [ecx + 0x418]
sar eax, 2
mov dword [ebp - 0x300], eax
mov eax, dword [ecx + 0x418]
mov edi, dword [esi + 0x10]
cmp edi, dword [eax]
mov edi, dword [ebp + 8]
je 0x1002a83f
inc edx
add eax, 4
cmp edx, dword [ebp - 0x300]
jb 0x10029e34
movzx eax, word [esi + 0x12]
test eax, eax
jne 0x10029e5c
movzx eax, word [esi + 0x10]
jmp 0x10029e74
sub eax, 0xff
lea ecx, [eax*8]
sub ecx, eax
movzx eax, word [esi + 0x10]
lea eax, [eax + ecx*4]
movzx eax, ax
cmp dword [esi + 0x24], 0
mov dword [ebp - 0x2f8], eax
je 0x1002a35c
mov eax, dword [esi + 0x18]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100d1500]
movsd qword [ebp - 0x320], xmm0
movd xmm0, dword [esi + 0x24]
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100d10f8]
movsd qword [ebp - 0x330], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
mov ecx, dword [esi + 0x24]
cdq
movsd xmm0, qword [ebp - 0x330]
lea ecx, [ecx*2 + 1]
idiv ecx
movd xmm1, edx
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x320]
divsd xmm0, qword [0x100d10f8]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ae531
mov ecx, edi
sub ecx, dword [esi + 0x2c]
cmp ecx, eax
jb 0x1002a83f
cmp dword [esi + 0x28], 0
mov eax, dword [ebp - 0x2f8]
movzx eax, ax
mov dword [ebp - 0x368], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x2e4], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x35c], 1
mov dword [ebp - 0x360], eax
movdqu xmm0, xmmword [ebp - 0x368]
jne 0x1002a09b
mov eax, dword [ebp - 0x2fc]
movdqu xmmword [ebp - 0x2c8], xmm0
mov edi, dword [eax + 0x424]
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x2c4], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x2c0], eax
lea eax, [ebp - 0x2c8]
cmp eax, edi
jae 0x1002a05f
mov ecx, eax
mov eax, dword [ebp - 0x2f4]
cmp eax, ecx
ja 0x1002a05f
sub ecx, eax
sar ecx, 4
mov dword [ebp - 0x300], ecx
cmp edi, dword [ebp - 0x2e0]
jne 0x1002a04b
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f4]
add ecx, ecx
test edi, edi
je 0x1002a1b0
movdqu xmm0, xmmword [eax + ecx*8]
jmp 0x1002a1ac
cmp edi, dword [ebp - 0x2e0]
jne 0x1002a086
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x1002a1b0
movdqu xmm0, xmmword [ebp - 0x2c8]
jmp 0x1002a1ac
mov edx, dword [ebp - 0x2fc]
mov eax, dword [esi + 0x28]
movdqu xmmword [ebp - 0x258], xmm0
mov ecx, dword [edx + 0x424]
mov dword [ebp - 0x2f8], ecx
lea ecx, [eax + 1]
cdq
sub eax, edx
mov dword [ebp - 0x308], ecx
mov edi, eax
sar edi, 1
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, edi
idiv dword [ebp - 0x308]
mov eax, dword [ebp - 0x2f8]
sub ecx, edx
movd xmm1, dword [eax + 0x10]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x254], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
idiv dword [ebp - 0x308]
mov eax, dword [ebp - 0x2f8]
sub edi, edx
movd xmm1, dword [eax + 0x10]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x250], eax
lea eax, [ebp - 0x258]
cmp eax, edi
jae 0x1002a179
mov ecx, eax
mov eax, dword [ebp - 0x2f4]
cmp eax, ecx
ja 0x1002a179
jmp 0x1002a00d
cmp edi, dword [ebp - 0x2e0]
jne 0x1002a1a0
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x1002a1b0
movdqu xmm0, xmmword [ebp - 0x258]
movdqu xmmword [edi], xmm0
mov eax, dword [esi + 0x18]
add edi, 0x10
mov dword [ebp - 0x2f0], edi
mov dword [ebp - 0x2e8], edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100d1500]
movsd qword [ebp - 0x320], xmm0
movd xmm0, dword [esi + 0x24]
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100d10f8]
movsd qword [ebp - 0x330], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
mov ecx, dword [esi + 0x24]
cdq
movsd xmm0, qword [ebp - 0x330]
lea ecx, [ecx*2 + 1]
idiv ecx
movd xmm1, edx
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x320]
divsd xmm0, qword [0x100d10f8]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ae531
mov ecx, eax
cmp ecx, 0xc6
jb 0x1002a24d
mov eax, 0xaaaaaaab
mul ecx
mov ecx, edx
mov edi, dword [ebp + 8]
mov eax, 8
shr ecx, 1
cmp ecx, 8
mov dword [ebp - 0x218], 1
cmovb ecx, eax
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x224], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x220], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x21c], eax
mov eax, 8
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x2e4], eax
cmp ecx, eax
jb 0x1002a301
lea ebx, [ebx]
add eax, edi
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x228], eax
mov eax, dword [esi + 0x38]
push ecx
mov dword [ebp - 0x300], eax
push dword [eax + 4]
push eax
call fcn.10034ca0
mov edx, eax
mov ecx, 0x9249248
mov eax, dword [esi + 0x3c]
sub ecx, eax
cmp ecx, 1
jb 0x1002aa06
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x300]
mov dword [esi + 0x3c], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov eax, dword [ebp - 0x2e4]
add eax, 0x10
mov dword [ebp - 0x2e4], eax
cmp eax, dword [ebp - 0x318]
jbe 0x1002a2a0
mov eax, dword [esi + 0x38]
lea ecx, [ebp - 0x228]
add dword [ebp - 0x228], 8
push ecx
mov dword [ebp - 0x218], 0
push dword [eax + 4]
mov dword [ebp - 0x300], eax
push eax
call fcn.10034ca0
mov edx, eax
mov ecx, 0x9249248
mov eax, dword [esi + 0x3c]
sub ecx, eax
cmp ecx, 1
jb 0x1002aa06
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x300]
mov dword [esi + 0x3c], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov dword [esi + 0x2c], edi
jmp 0x1002a83f
mov edx, dword [esi + 0x1c]
cmp edi, edx
jb 0x1002a83f
lea eax, [esi + 0x18]
mov dword [ebp - 0x310], eax
mov eax, edi
mov ecx, dword [ebp - 0x310]
sub eax, edx
xor edx, edx
div dword [ecx]
mov edx, dword [esi + 0x20]
mov ecx, dword [ebp - 0x2fc]
inc eax
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x304], edx
cmp edx, eax
jae 0x1002a83c
mov eax, dword [ebp - 0x2f8]
movzx edx, ax
mov dword [ebp - 0x30c], edx
jmp 0x1002a3b0
cmp dword [esi + 0x28], 0
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x2f8], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x348], edx
mov dword [ebp - 0x33c], 1
mov dword [ebp - 0x340], eax
movdqu xmm0, xmmword [ebp - 0x348]
jne 0x1002a524
mov edi, dword [ecx + 0x424]
movdqu xmmword [ebp - 0x278], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x274], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
lea ecx, [ebp - 0x278]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x2e8]
cmp ecx, eax
jae 0x1002a4e8
mov edx, ecx
mov ecx, dword [ebp - 0x2f4]
cmp ecx, edx
ja 0x1002a4e8
mov edi, edx
sub edi, ecx
cmp eax, dword [ebp - 0x2e0]
jne 0x1002a4d3
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0x2f4]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f0]
and edi, 0xfffffff0
test eax, eax
je 0x1002a635
movdqu xmm0, xmmword [edi + ecx]
jmp 0x1002a631
cmp eax, dword [ebp - 0x2e0]
jne 0x1002a50f
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x1002a635
movdqu xmm0, xmmword [ebp - 0x278]
jmp 0x1002a631
mov eax, dword [esi + 0x28]
mov ecx, dword [ecx + 0x424]
mov dword [ebp - 0x308], ecx
movdqu xmmword [ebp - 0x298], xmm0
lea ecx, [eax + 1]
cdq
sub eax, edx
mov dword [ebp - 0x2e4], ecx
mov edi, eax
sar edi, 1
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, edi
idiv dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x308]
sub ecx, edx
movd xmm1, dword [eax + 0x10]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x294], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
lea ecx, [ebp - 0x298]
idiv dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x308]
sub edi, edx
movd xmm1, dword [eax + 0x10]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x2e8]
cmp ecx, eax
jae 0x1002a5fe
mov edx, ecx
mov ecx, dword [ebp - 0x2f4]
cmp ecx, edx
ja 0x1002a5fe
mov edi, edx
jmp 0x1002a4a4
cmp eax, dword [ebp - 0x2e0]
jne 0x1002a625
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x1002a635
movdqu xmm0, xmmword [ebp - 0x298]
movdqu xmmword [eax], xmm0
add eax, 0x10
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2e8], eax
mov eax, dword [ebp - 0x310]
mov eax, dword [eax]
cmp eax, 0x28
jae 0x1002a793
cmp dword [esi + 0x28], 0
mov dword [ebp - 0x33c], 0
jne 0x1002a745
mov eax, dword [ebp - 0x2fc]
movdqu xmm0, xmmword [ebp - 0x348]
mov edi, dword [eax + 0x424]
movdqu xmmword [ebp - 0x224], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x220], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
lea ecx, [ebp - 0x2f4]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x21c], eax
lea eax, [ebp - 0x224]
push eax
call fcn.10031b50
mov ecx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2f0]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2e8], eax
jmp 0x1002a815
push dword [esi + 0x28]
lea eax, [ebp - 0x348]
push eax
lea eax, [ebp - 0x238]
push eax
mov eax, dword [ebp - 0x2fc]
mov ecx, dword [eax + 0x424]
call fcn.10020260
push eax
lea ecx, [ebp - 0x2f4]
call fcn.10031b50
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e8], eax
jmp 0x1002a815
mov edi, dword [ebp + 8]
mov ecx, 0x40
shr eax, 1
cmp eax, 0x40
mov dword [ebp - 0x218], 0
cmova eax, ecx
lea ecx, [ebp - 0x228]
add eax, edi
mov dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x224], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x220], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x21c], eax
mov eax, dword [esi + 0x38]
push ecx
mov dword [ebp - 0x300], eax
push dword [eax + 4]
push eax
call fcn.10034ca0
mov edx, eax
mov ecx, 0x9249248
mov eax, dword [esi + 0x3c]
sub ecx, eax
cmp ecx, 1
jb 0x1002aa06
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x300]
mov dword [esi + 0x3c], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov edx, dword [ebp - 0x304]
mov eax, dword [ebp - 0x318]
inc edx
mov ecx, dword [ebp - 0x2fc]
cmp edx, eax
mov dword [ebp - 0x304], edx
mov edx, dword [ebp - 0x30c]
jb 0x1002a3b0
mov dword [esi + 0x20], eax
cmp byte [esi + 0xd], 0
jne 0x1002a882
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x1002a864
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x1002a882
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x1002a858
jmp 0x1002a882
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x1002a880
lea ecx, [ecx]
cmp esi, dword [eax + 8]
jne 0x1002a880
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x1002a870
mov esi, eax
mov ecx, dword [ebp - 0x2fc]
cmp esi, dword [ecx + 0x3bc]
jne 0x10029a20
mov eax, dword [ecx + 0x3c4]
mov esi, dword [eax]
mov dword [ebp - 0x308], esi
cmp esi, eax
je 0x1002aa9e
lea ebx, [ebx]
cmp dword [esi + 0x28], 0
je 0x1002aae6
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
cmp edi, dword [eax + 8]
jae 0x1002a8e9
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1002aa7b
jb 0x1002a8e3
cmp edx, dword [eax + 8]
jae 0x1002aa7b
mov ecx, dword [ebp - 0x2fc]
movdqu xmm0, xmmword [eax + 0xc]
mov edi, dword [ecx + 0x424]
movdqu xmmword [ebp - 0x238], xmm0
movdqu xmmword [ebp - 0x2b8], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movdqu xmm0, xmmword [ebp - 0x238]
cvttsd2si ecx, xmm1
psrldq xmm0, 4
movd eax, xmm0
add eax, ecx
mov dword [ebp - 0x2b4], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
mov edi, dword [ebp - 0x2e8]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x2b0], eax
lea eax, [ebp - 0x2b8]
cmp eax, edi
jae 0x1002aa11
mov ecx, eax
mov eax, dword [ebp - 0x2f4]
cmp eax, ecx
ja 0x1002aa11
sub ecx, eax
sar ecx, 4
mov dword [ebp - 0x300], ecx
cmp edi, dword [ebp - 0x2e0]
jne 0x1002a9f9
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f4]
add ecx, ecx
test edi, edi
je 0x1002aa48
movdqu xmm0, xmmword [eax + ecx*8]
jmp 0x1002aa44
push str.list_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
cmp edi, dword [ebp - 0x2e0]
jne 0x1002aa38
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x1002aa48
movdqu xmm0, xmmword [ebp - 0x2b8]
movdqu xmmword [edi], xmm0
mov eax, dword [esi + 0x24]
add edi, 0x10
mov dword [ebp - 0x2f0], edi
mov dword [ebp - 0x2e8], edi
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x28]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x308]
call fcn.1000a810
mov ecx, dword [ebp - 0x2fc]
mov esi, dword [ebp - 0x308]
cmp esi, dword [ecx + 0x3c4]
jne 0x1002a8b0
mov esi, dword [ecx + 0x3f0]
xor edi, edi
mov eax, dword [esi]
mov dword [ebp - 0x2e4], eax
cmp eax, esi
je 0x1002aad8
add edi, dword [eax + 0x58]
lea ecx, [ebp - 0x2e4]
call fcn.1000a810
mov eax, dword [ebp - 0x2e4]
cmp eax, esi
jne 0x1002aab2
test edi, edi
jne 0x1002b126
mov ecx, dword [ebp - 0x2fc]
mov esi, dword [ebp + 8]
push esi
call fcn.1002da30
jmp 0x1002b129
cmp byte [esi + 0x14], 0
je 0x1002aa7b
cmp byte [esi + 0x84], 0
je 0x1002aa7b
movzx eax, word [esi + 0x12]
test eax, eax
jne 0x1002ab09
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x304], ecx
jmp 0x1002ab27
sub eax, 0xff
lea ecx, [eax*8]
sub ecx, eax
movzx eax, word [esi + 0x10]
lea eax, [eax + ecx*4]
movzx eax, ax
mov dword [ebp - 0x304], eax
mov eax, dword [esi + 0x78]
mov byte [ebp - 0x2d9], 0
cmp eax, dword [esi + 0x7c]
je 0x1002ab5f
mov edx, dword [eax + 4]
mov ecx, 0x14
mov edi, ecx
add edx, dword [esi + ecx + 4]
cmp edx, dword [esi + edi + 8]
mov ecx, dword [esi + 0x7c]
mov edi, dword [ebp + 8]
jbe 0x1002ab58
cmp edx, edi
jbe 0x1002ac1c
add eax, 0x10
cmp eax, ecx
jne 0x1002ab36
mov edi, dword [ebp - 0x2e8]
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x2e4], eax
cmp eax, dword [esi + 0x44]
je 0x1002aba6
mov edx, dword [eax + 4]
mov eax, 0x14
mov ecx, eax
add edx, dword [esi + eax + 4]
cmp edx, dword [esi + ecx + 8]
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [esi + 0x44]
jbe 0x1002ab99
cmp edx, dword [ebp + 8]
jbe 0x1002adbb
add eax, 0x10
mov dword [ebp - 0x2e4], eax
cmp eax, ecx
jne 0x1002ab73
cmp byte [ebp - 0x2d9], 0
jne 0x1002b0fc
mov eax, dword [esi + 0x88]
cmp eax, dword [esi + 0x8c]
je 0x1002aa78
cmp byte [esi + 0x2c], 0
jne 0x1002abec
mov eax, dword [ebp - 0x2fc]
cmp dword [eax + 0x408], 0
je 0x1002abec
push dword [esi + 0x10]
mov ecx, eax
call fcn.1002d6e0
test al, al
jne 0x1002aa78
mov eax, dword [esi + 0x88]
mov edi, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, dword [esi + 0x18]
cmp eax, edi
ja 0x1002aa7b
mov ecx, dword [esi + 0x20]
cmp ecx, 0xffffffff
jne 0x1002af61
xor eax, eax
mov dword [ebp - 0x2f8], eax
jmp 0x1002afc0
mov ecx, dword [ebp - 0x304]
mov edi, dword [eax + 8]
movzx ecx, cx
mov dword [ebp - 0x348], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x340], ecx
xor ecx, ecx
cmp byte [eax], cl
mov eax, dword [ebp - 0x2fc]
setne cl
mov dword [ebp - 0x344], edi
mov dword [ebp - 0x33c], ecx
movdqu xmm0, xmmword [ebp - 0x348]
mov eax, dword [eax + 0x424]
mov dword [ebp - 0x2e4], eax
movdqu xmmword [ebp - 0x2d8], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, edi
mov dword [ebp - 0x2d4], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
mov edi, dword [ebp - 0x2e8]
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x2d0], eax
lea eax, [ebp - 0x2d8]
cmp eax, edi
jae 0x1002ad69
mov ecx, eax
mov eax, dword [ebp - 0x2f4]
cmp eax, ecx
ja 0x1002ad69
sub ecx, eax
sar ecx, 4
mov dword [ebp - 0x300], ecx
cmp edi, dword [ebp - 0x2e0]
jne 0x1002ad5c
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f4]
add ecx, ecx
test edi, edi
je 0x1002ada0
movdqu xmm0, xmmword [eax + ecx*8]
jmp 0x1002ad9c
cmp edi, dword [ebp - 0x2e0]
jne 0x1002ad90
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x1002ada0
movdqu xmm0, xmmword [ebp - 0x2d8]
movdqu xmmword [edi], xmm0
add edi, 0x10
mov byte [ebp - 0x2d9], 1
mov dword [ebp - 0x2f0], edi
mov dword [ebp - 0x2e8], edi
jmp 0x1002ab65
mov ecx, dword [ebp - 0x304]
mov edi, dword [eax + 8]
movzx ecx, cx
mov dword [ebp - 0x368], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x360], ecx
xor ecx, ecx
cmp byte [eax], cl
mov eax, dword [ebp - 0x2fc]
setne cl
mov dword [ebp - 0x364], edi
mov dword [ebp - 0x35c], ecx
movdqu xmm0, xmmword [ebp - 0x368]
mov eax, dword [eax + 0x424]
mov dword [ebp - 0x2e4], eax
movdqu xmmword [ebp - 0x288], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, edi
mov dword [ebp - 0x284], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
mov edi, dword [ebp - 0x2e8]
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x280], eax
lea eax, [ebp - 0x288]
cmp eax, edi
jae 0x1002af1c
mov ecx, eax
mov eax, dword [ebp - 0x2f4]
cmp eax, ecx
ja 0x1002af1c
sub ecx, eax
sar ecx, 4
mov dword [ebp - 0x300], ecx
cmp edi, dword [ebp - 0x2e0]
jne 0x1002aeff
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ebp - 0x2f4]
add ecx, ecx
test edi, edi
je 0x1002af0e
movdqu xmm0, xmmword [eax + ecx*8]
movdqu xmmword [edi], xmm0
add edi, 0x10
mov dword [ebp - 0x2f0], edi
jmp 0x1002b0f6
cmp edi, dword [ebp - 0x2e0]
jne 0x1002af43
push 1
lea ecx, [ebp - 0x2f4]
call fcn.10025aa0
mov eax, dword [ebp - 0x2ec]
mov edi, dword [ebp - 0x2f0]
mov dword [ebp - 0x2e0], eax
test edi, edi
je 0x1002af53
movdqu xmm0, xmmword [ebp - 0x288]
movdqu xmmword [edi], xmm0
add edi, 0x10
mov dword [ebp - 0x2f0], edi
jmp 0x1002b0f6
mov eax, dword [esi + 0x8c]
sub eax, dword [esi + 0x88]
sar eax, 4
dec eax
cmp ecx, eax
jne 0x1002af90
mov eax, edi
sub eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x94]
jb 0x1002aa7b
xor eax, eax
mov dword [ebp - 0x2f8], eax
jmp 0x1002afc0
mov eax, dword [esi + 0x88]
add ecx, ecx
mov edx, dword [eax + ecx*8 + 0x14]
sub edx, dword [eax + ecx*8 + 4]
mov eax, edi
sub eax, dword [esi + 0x1c]
cmp eax, edx
jb 0x1002aa7b
mov eax, dword [esi + 0x20]
inc eax
mov dword [ebp - 0x2f8], eax
cmp eax, 0xffffffff
je 0x1002aa7b
shl eax, 4
xor ecx, ecx
add eax, dword [esi + 0x88]
movdqu xmm1, xmmword [eax]
mov eax, dword [ebp - 0x304]
movzx eax, ax
mov dword [ebp - 0x224], eax
movdqa xmm0, xmm1
psrldq xmm0, 8
movd eax, xmm1
movd edi, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 0xc
test al, al
movd dword [ebp - 0x21c], xmm0
mov eax, dword [ebp - 0x2fc]
setne cl
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x218], ecx
movdqu xmm0, xmmword [ebp - 0x224]
mov eax, dword [eax + 0x424]
mov dword [ebp - 0x2e4], eax
movdqu xmmword [ebp - 0x238], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, edi
mov dword [ebp - 0x234], eax
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
mov eax, 1
lea ecx, [ebp - 0x2f4]
sub eax, edx
movd xmm0, eax
mov eax, dword [ebp - 0x2e4]
cvtdq2pd xmm0, xmm0
movd xmm1, dword [eax + 0x10]
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movd xmm0, dword [eax + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x230], eax
lea eax, [ebp - 0x238]
push eax
call fcn.10031b50
mov eax, dword [ebp - 0x2f8]
mov edi, dword [ebp - 0x2f0]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2e8], edi
cmp dword [edi - 4], 1
sete al
mov byte [esi + 0x2c], al
test al, al
je 0x1002b11b
movdqu xmm0, xmmword [edi - 0x10]
movdqu xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3c], 0
mov edi, dword [ebp + 8]
mov dword [esi + 0x1c], edi
jmp 0x1002aa7b
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x2fc]
mov ecx, dword [edi + 0x3f0]
mov dword [ebp - 0x2f8], ecx
mov eax, dword [ecx]
lea ecx, [ebp - 0x304]
mov dword [ebp - 0x304], eax
lea eax, [ebp - 0x2f8]
push eax
call fcn.10031bc0
test al, al
je 0x1002b1fd
lea ecx, [ecx]
lea ecx, [ebp - 0x304]
call fcn.10031bb0
add eax, 0x44
mov ecx, eax
mov dword [ebp - 0x2e4], eax
call fcn.100311b0
test al, al
jne 0x1002b1cc
mov ecx, dword [ebp - 0x2e4]
call fcn.10031350
mov dword [ebp - 0x300], eax
mov eax, dword [eax]
cmp esi, eax
jae 0x1002b1ac
xor ecx, ecx
mov edx, esi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1002b1cc
jb 0x1002b1ac
cmp edx, eax
jae 0x1002b1cc
mov eax, dword [ebp - 0x300]
lea ecx, [ebp - 0x2f4]
add eax, 4
push eax
call fcn.10031b50
mov ecx, dword [ebp - 0x2e4]
call fcn.100311c0
lea ecx, [ebp - 0x304]
call fcn.1000a810
mov eax, dword [edi + 0x3f0]
lea ecx, [ebp - 0x304]
mov dword [ebp - 0x2f8], eax
lea eax, [ebp - 0x2f8]
push eax
call fcn.10031bc0
test al, al
jne 0x1002b160
lea ecx, [ebp - 0x304]
push ecx
lea ecx, [edi + 0x3e4]
call fcn.100311a0
lea eax, [ebp - 0x300]
push eax
lea ecx, [edi + 0x3e4]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x304]
call fcn.10031bc0
test al, al
je 0x1002b30d
lea ecx, [ebp - 0x304]
call fcn.10031bb0
mov dword [ebp - 0x2e4], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x1002b251
dec ecx
mov dword [eax + 0x18], ecx
cmp dword [eax + 0x18], 0
jne 0x1002b2d1
add eax, 0x24
mov ecx, eax
mov dword [ebp - 0x2f8], eax
call fcn.100311b0
test al, al
je 0x1002b292
mov ecx, dword [ebp - 0x2e4]
mov eax, 0x119
push 0
cmp word [ecx], ax
sete al
movzx eax, al
push eax
lea eax, [ecx + 4]
push eax
push ecx
mov ecx, edi
call fcn.1002cbf0
mov ecx, dword [ebp - 0x2f8]
call fcn.100311b0
test al, al
jne 0x1002b2d1
mov ecx, dword [ebp - 0x2f8]
call fcn.10031350
mov edx, dword [ebp - 0x2e4]
mov ecx, dword [eax]
add eax, 4
mov dword [edx + 0x18], ecx
lea ecx, [ebp - 0x2f4]
push eax
call fcn.10031b50
mov ecx, dword [ebp - 0x2f8]
call fcn.100311c0
push ecx
lea eax, [ebp - 0x36c]
push eax
lea ecx, [ebp - 0x304]
call fcn.10031c10
lea eax, [ebp - 0x300]
push eax
lea ecx, [edi + 0x3e4]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x304]
call fcn.10031bc0
test al, al
jne 0x1002b235
mov esi, dword [ebp + 8]
mov ecx, dword [edi + 0x40c]
test ecx, ecx
je 0x1002b37d
add ecx, 0x58
call fcn.100311b0
test al, al
je 0x1002b330
push 0
mov ecx, edi
call fcn.1002e3f0
mov eax, dword [edi + 0x40c]
add eax, 0x58
mov ecx, eax
mov dword [ebp - 0x300], eax
call fcn.100311b0
test al, al
jne 0x1002b37d
mov ecx, dword [ebp - 0x300]
lea eax, [ebp - 0x36c]
push eax
call fcn.100311a0
mov ecx, eax
call fcn.10031be0
push eax
lea ecx, [ebp - 0x2f4]
call fcn.10031b50
mov ecx, dword [edi + 0x40c]
add ecx, 0x58
call fcn.100311c0
push dword [ebp - 0x324]
lea eax, [ebp - 0x2f4]
mov ecx, edi
push eax
push esi
call fcn.1002d050
lea eax, [edi + 0x3d4]
lea ecx, [ebp - 0x30c]
mov dword [ebp - 0x36c], eax
push ecx
mov ecx, eax
call fcn.100311a0
lea eax, [ebp - 0x380]
push eax
lea ecx, [edi + 0x3d4]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x30c]
call fcn.10031bc0
test al, al
je 0x1002b946
lea ecx, [ebp - 0x30c]
call fcn.10031bb0
mov ecx, dword [ebp - 0x2fc]
mov edi, eax
mov dword [ebp - 0x308], edi
mov eax, dword [edi]
mov edx, eax
shr edx, 0x10
test edx, edx
je 0x1002b5d2
cmp byte [edx + ecx + 0x264], 1
movzx eax, ax
jne 0x1002b415
cmp byte [eax + ecx + 0x264], 1
je 0x1002b5ee
cmp byte [eax + ecx + 0x264], 0
jne 0x1002b429
cmp byte [edi + 4], 0
je 0x1002b429
mov byte [edi + 4], 0
lea eax, [edi + 0x14]
mov ecx, eax
mov dword [ebp - 0x318], eax
call fcn.100311b0
test al, al
je 0x1002b823
cmp byte [edi + 4], 0
je 0x1002b823
cmp byte [edi + 0x60], 0
je 0x1002b823
lea ecx, [ebp - 0x2e8]
xor al, al
push ecx
lea ecx, [edi + 0x74]
mov byte [ebp - 0x2d9], al
call fcn.10030e40
lea eax, [ebp - 0x310]
push eax
lea ecx, [edi + 0x74]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x2e8]
call fcn.10031bc0
test al, al
je 0x1002b58f
nop
lea ecx, [ebp - 0x2e8]
call fcn.10006270
mov dword [ebp - 0x300], eax
mov cl, byte [eax]
mov byte [ebp - 0x331], cl
test cl, cl
je 0x1002b54b
mov ecx, dword [eax + 4]
add ecx, dword [edi + 8]
cmp ecx, dword [edi + 0xc]
jbe 0x1002b54b
cmp ecx, esi
ja 0x1002b54b
mov eax, dword [eax + 8]
lea ecx, [edi + 0x14]
mov dword [ebp - 0x37c], eax
mov al, byte [ebp - 0x331]
mov byte [ebp - 0x378], al
lea eax, [ebp - 0x37c]
push eax
mov dword [ebp - 0x374], esi
call fcn.10031540
push ecx
lea eax, [ebp - 0x308]
push eax
lea ecx, [ebp - 0x2e8]
call fcn.10031c30
lea ecx, [ebp - 0x2e8]
call fcn.10006270
mov edx, dword [ebp - 0x300]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x37c], ecx
mov ecx, dword [eax + 4]
sub ecx, dword [edx + 4]
mov al, byte [eax]
add ecx, esi
mov byte [ebp - 0x378], al
lea eax, [ebp - 0x37c]
mov dword [ebp - 0x374], ecx
lea ecx, [edi + 0x14]
push eax
call fcn.10031540
mov byte [ebp - 0x2d9], 1
push ecx
lea eax, [ebp - 0x300]
push eax
lea ecx, [ebp - 0x2e8]
call fcn.10031c30
lea eax, [ebp - 0x310]
push eax
lea ecx, [edi + 0x74]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x2e8]
call fcn.10031bc0
test al, al
jne 0x1002b490
mov al, byte [ebp - 0x2d9]
test al, al
jne 0x1002b815
lea ecx, [edi + 0x80]
call fcn.10030e70
test al, al
jne 0x1002b823
lea ecx, [edi + 0x80]
call fcn.10006270
mov eax, dword [eax + 4]
add eax, dword [edi + 8]
cmp eax, esi
ja 0x1002b823
cmp dword [edi + 0x10], 0xffffffff
jne 0x1002b6d8
xor eax, eax
mov dword [ebp - 0x2e0], eax
jmp 0x1002b74d
cmp byte [eax + ecx + 0x264], 1
jne 0x1002b41f
cmp byte [eax + ecx + 0x29c], 0
jne 0x1002b41f
cmp byte [edi + 4], 0
jne 0x1002b429
mov byte [edi + 4], 1
lea eax, [esi - 1]
mov byte [edi + 4], 1
mov dword [edi + 8], esi
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0xffffffff
cmp byte [edi + 0x60], 0
jne 0x1002b429
lea eax, [edi + 0x74]
lea ecx, [ebp - 0x304]
mov dword [ebp - 0x300], eax
push ecx
mov ecx, eax
call fcn.10030e40
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [edi + 0x74]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x304]
call fcn.10031bc0
test al, al
je 0x1002b429
lea eax, [edi + 0x14]
mov edi, dword [ebp - 0x300]
mov dword [ebp - 0x318], eax
lea ecx, [ebp - 0x304]
call fcn.10006270
mov ecx, dword [eax + 8]
mov dword [ebp - 0x220], ecx
mov ecx, dword [eax + 4]
mov al, byte [eax]
add ecx, esi
mov byte [ebp - 0x21c], al
lea eax, [ebp - 0x220]
mov dword [ebp - 0x218], ecx
mov ecx, dword [ebp - 0x318]
push eax
call fcn.10031540
push ecx
lea eax, [ebp - 0x300]
push eax
lea ecx, [ebp - 0x304]
call fcn.10031c30
lea eax, [ebp - 0x2e4]
mov ecx, edi
push eax
call fcn.10030e50
push eax
lea ecx, [ebp - 0x304]
call fcn.10031bc0
test al, al
jne 0x1002b663
mov edi, dword [ebp - 0x308]
jmp 0x1002b429
lea ecx, [edi + 0x80]
call fcn.10030fc0
mov ecx, dword [edi + 0x10]
dec eax
cmp ecx, eax
jne 0x1002b703
mov eax, esi
sub eax, dword [edi + 0xc]
cmp eax, 0x40
jb 0x1002b823
xor eax, eax
mov dword [ebp - 0x2e0], eax
jmp 0x1002b74d
lea eax, [ecx + 1]
push eax
lea ecx, [edi + 0x80]
mov dword [ebp - 0x2e0], eax
call fcn.10030fe0
push dword [edi + 0x10]
lea ecx, [edi + 0x80]
mov esi, eax
call fcn.10030fe0
mov ecx, dword [esi + 4]
mov esi, dword [ebp + 8]
sub ecx, dword [eax + 4]
mov eax, esi
sub eax, dword [edi + 0xc]
cmp eax, ecx
jb 0x1002b823
mov eax, dword [ebp - 0x2e0]
cmp eax, 0xffffffff
je 0x1002b823
push eax
lea ecx, [edi + 0x80]
call fcn.10030fe0
mov ecx, dword [ebp - 0x2fc]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push eax
movq qword [ebp - 0x364], xmm0
mov dword [ebp - 0x300], eax
call fcn.1002d730
test al, al
jne 0x1002b823
mov eax, dword [ebp - 0x300]
lea ecx, [edi + 0x14]
mov dword [ebp - 0x234], eax
mov al, byte [ebp - 0x364]
mov byte [ebp - 0x230], al
lea eax, [ebp - 0x234]
push eax
mov dword [ebp - 0x22c], esi
call fcn.10031540
mov eax, dword [ebp - 0x2e0]
lea ecx, [edi + 0x80]
inc eax
push eax
mov dword [ebp - 0x2e0], eax
call fcn.10030fe0
lea ecx, [edi + 0x14]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x234], eax
movq qword [ebp - 0x344], xmm0
mov eax, dword [ebp - 0x340]
sub eax, dword [ebp - 0x360]
add eax, esi
mov dword [ebp - 0x22c], eax
mov al, byte [ebp - 0x344]
mov byte [ebp - 0x230], al
lea eax, [ebp - 0x234]
push eax
call fcn.10031540
mov eax, dword [ebp - 0x2e0]
mov dword [edi + 0x10], eax
lea ecx, [edi + 0x14]
call fcn.10031530
mov eax, dword [eax + 8]
mov dword [edi + 0xc], eax
mov edi, dword [ebp - 0x318]
mov ecx, edi
call fcn.100311b0
test al, al
jne 0x1002b907
mov ecx, edi
call fcn.10031350
mov edx, eax
cmp esi, dword [edx + 8]
jae 0x1002b864
xor ecx, ecx
mov eax, esi
add eax, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1002b907
jb 0x1002b864
cmp eax, dword [edx + 8]
jae 0x1002b907
mov eax, dword [edx]
sub eax, 0x100
mov dword [ebp - 0x2f8], eax
js 0x1002b8f5
cmp eax, 0x18
jae 0x1002b8f5
cmp byte [edx + 4], 0
lea eax, [ebp - 0x2f8]
mov ecx, dword [ebp - 0x314]
push eax
je 0x1002b89d
call fcn.10031610
mov byte [eax], 0
jmp 0x1002b8f5
lea eax, [ebp - 0x324]
push eax
call fcn.100257c0
mov ecx, dword [ebp - 0x314]
lea eax, [ebp - 0x31c]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x324]
call fcn.10031bc0
test al, al
je 0x1002b8f5
lea ecx, [ebp - 0x324]
call fcn.10031bb0
cmp byte [eax + 4], 0
je 0x1002b8e3
mov ecx, edi
call fcn.10031240
mov ecx, dword [ebp - 0x314]
lea eax, [ebp - 0x2f8]
push eax
call fcn.10031690
mov ecx, edi
call fcn.100311b0
test al, al
jne 0x1002b907
mov ecx, edi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x32c]
push eax
lea ecx, [ebp - 0x30c]
call fcn.10031c10
mov ecx, dword [ebp - 0x36c]
lea eax, [ebp - 0x380]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x30c]
call fcn.10031bc0
test al, al
jne 0x1002b3d2
mov edi, dword [ebp - 0x2fc]
lea ecx, [ebp - 0x2f4]
mov dword [ebp - 4], 0xffffffff
call fcn.100116f0
push ecx
mov ecx, edi
call fcn.10030b10
mov edx, dword [0x100f0828]
inc edx
mov dword [0x100f0828], edx
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.100ad688
mov esp, ebp
pop ebp
ret 8