Function at 0x10127a15
Capabilities:
Encrypt data using speck

Disassembly:
push 0x148
mov eax, 0x1015038b
call fcn.1014377c
mov ebx, ecx
mov dword [ebp - 0x104], ebx
mov eax, dword [ebx + 8]
mov edi, dword [ebp + 8]
mov dword [ebp - 0xcc], edi
push 0xc
pop edx
test eax, eax
je 0x10127a6c
xor ecx, ecx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0x30], eax
pop ecx
test eax, eax
je 0x10128dc1
imul ecx, dword [ebx + 8], 0xc
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
call sym.rt3d.dll_public:_static_class_e3_MEM____stdcall_e3_MEM::Create_void_
mov dword [ebx + 0x34], eax
test eax, eax
je 0x10128dc1
push 0x40
call fcn.10038cdf
mov dword [ebx + 0x38], eax
pop ecx
test eax, eax
je 0x10128dc1
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebx + 0x38]
add esp, 0xc
mov eax, dword [ebx + 4]
mov dword [ecx + 0x38], eax
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x34]
mov dword [ecx + 4], eax
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebx]
mov dword [ecx], eax
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x30]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 0x38]
mov dword [eax + 0x3c], edi
mov eax, dword [ebx + 0x34]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x2c], eax
push dword [ebx + 0x38]
mov ecx, dword [ebx]
push edi
call fcn.10038cdf
xor edx, edx
mov esi, eax
inc edx
mov dword [ebp - 0xd4], esi
cmp esi, edx
jge 0x10127b26
mov ecx, dword [ebx]
cmp dword [ecx + 0xbe], 0
je 0x10127b0b
test dword [edi + 0x28], 0x800
jne 0x10127b26
mov eax, dword [ecx]
push edi
push ecx
mov esi, dword [eax + 0xac]
mov ecx, esi
call dword [0x10151b24]
call esi
xor eax, eax
jmp 0x10128dc4
mov eax, dword [edi + 0x28]
test al, 0x40
je 0x10127c0b
test esi, esi
je 0x10127c0b
mov ecx, dword [ebx]
cmp dword [ecx + 0x112], 0
jne 0x10127b88
mov eax, dword [ecx + 0x122]
xor ecx, ecx
push 0xc
pop edx
mov dword [ebp - 0xf8], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebp - 0xf8], eax
pop ecx
mov ecx, dword [ebx]
mov dword [ecx + 0x112], eax
mov ecx, dword [ebx]
cmp dword [ecx + 0x112], 0
je 0x10128dc1
mov eax, dword [edi + 0x28]
xor edx, edx
inc edx
test eax, 0x200
je 0x10127bf0
cmp dword [edi + 0x24], 0
je 0x10127bf0
mov eax, dword [ecx + 0x66]
xor ecx, ecx
push 0xc
pop edx
mov dword [ebp - 0xf8], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov esi, eax
mov dword [ebp - 0xf8], esi
pop ecx
test esi, esi
je 0x10128dc1
mov ecx, dword [ebx]
push dword [ecx + 0x66]
push esi
push dword [ecx + 0x62]
push dword [edi + 0x24]
call fcn.10038cdf
push dword [edi + 0x24]
mov ecx, dword [ebx]
push esi
push 7
call fcn.10038cdf
push esi
call fcn.1014342d
mov esi, dword [ebp - 0xd4]
pop ecx
jmp 0x10127c0b
push 0
push dword [ecx + 0x62]
push edx
call fcn.10038cdf
mov ecx, dword [ebx]
push 0
push dword [ecx + 0x62]
push 2
pop eax
push eax
call fcn.10038cdf
mov eax, dword [ebx]
xor edx, edx
mov cl, dl
mov dword [ebp - 0xf0], ecx
cmp dword [eax + 0x6e], edx
je 0x10127c37
cmp dword [eax + 0xa2], edx
je 0x10127c37
test byte [edi + 0x28], 0x80
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [ebp - 0xf0], ecx
push 0x64
push edx
lea eax, [ebp - 0x94]
mov dword [ebp - 0x100], edx
push eax
mov dword [ebp - 0xe0], edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test dword [edi + 0x28], 0x20080
push 3
pop ecx
je 0x10127df4
test esi, esi
je 0x10127e6b
test dword [edi + 0x28], 0x20000
je 0x10127d16
mov edx, dword [ebx]
and dword [ebp - 0xb8], 0
cmp dword [edx + 0x54], 0
jbe 0x10127cfa
mov edi, dword [ebp - 0xb8]
xor ecx, ecx
mov eax, dword [edx + 0x50]
mov dword [ebp - 0xb8], 0x3e8
movzx esi, word [eax + ecx]
cmp si, word [ebp - 0xb8]
jb 0x10127ccb
mov dword [ebp - 0xb8], 0x44c
cmp si, word [ebp - 0xb8]
jae 0x10127ccb
mov eax, esi
or byte [ebp + eax - 0x47c], 1
mov eax, dword [edx + 0x50]
movzx esi, word [ecx + eax]
lea eax, [esi - 0x384]
cmp ax, 0x63
ja 0x10127ce5
mov eax, esi
or byte [ebp + eax - 0x418], 2
inc edi
add ecx, 0x1c
cmp edi, dword [edx + 0x54]
jb 0x10127c91
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd4]
xor ecx, ecx
mov edx, ecx
cmp byte [ebp + ecx - 0x94], 3
lea eax, [edx + 1]
cmovne eax, edx
inc ecx
mov edx, eax
cmp ecx, 0x64
jb 0x10127cfe
jmp 0x10127d2e
cmp byte [ebp - 0xf0], 0
je 0x10127df4
xor eax, eax
mov byte [ebp - 0x94], cl
lea edx, [eax + 1]
mov dword [ebp - 0x100], edx
test edx, edx
je 0x10127df4
xor ecx, ecx
mov eax, edx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0xc], eax
pop ecx
test eax, eax
je 0x10128dc1
mov eax, dword [ebp - 0x100]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0x10], eax
pop ecx
test eax, eax
je 0x10128dc1
mov eax, dword [ebp - 0x100]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0x14], eax
pop ecx
test eax, eax
je 0x10128dc1
test byte [edi + 0x28], 0x10
je 0x10127dd6
mov eax, dword [ebp - 0x100]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0x18], eax
pop ecx
test eax, eax
je 0x10128dc1
mov eax, dword [ebx + 0x38]
mov edx, dword [ebp - 0x100]
mov dword [eax + 0x2c], edx
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x14]
mov dword [ecx + 0x20], eax
mov ecx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0x24], eax
test esi, esi
je 0x10127e6b
xor edi, edi
xor edx, edx
mov dword [ebp - 0xbc], edx
cmp byte [ebp + edi - 0x94], 3
jne 0x10127e59
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx]
add eax, edx
push eax
mov eax, dword [ebx + 0x10]
add eax, edx
mov esi, dword [ecx]
push eax
push edi
push ecx
mov esi, dword [esi + 0x19c]
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0xe0]
push 4
mov dword [edx + eax], edi
pop eax
add edx, eax
test edi, edi
lea eax, [ecx + 1]
mov dword [ebp - 0xbc], edx
cmove eax, ecx
mov dword [ebp - 0xe0], eax
inc edi
cmp edi, 0x64
jb 0x10127e02
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd4]
mov ecx, dword [edi + 0x28]
mov eax, ecx
test ecx, 0x40000
je 0x10127ea8
mov edx, dword [ebx]
cmp dword [edx + 0xaa], 0
je 0x10127e89
cmp dword [edx + 0x7e], 0
jne 0x10127e94
cmp dword [edx + 0x8a], 0
mov eax, ecx
je 0x10127ea8
xor edx, edx
mov eax, ecx
inc edx
test esi, esi
je 0x10127eab
mov eax, dword [ebx + 0x38]
mov byte [eax + 0x36], dl
mov eax, dword [edi + 0x28]
jmp 0x10127eab
xor edx, edx
inc edx
test al, 0x20
je 0x10128741
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebp - 0xf0]
mov byte [eax + 0x35], cl
test byte [edi + 0x28], 0x40
je 0x10127ecb
mov eax, dword [ebx + 0x38]
mov byte [eax + 0x34], dl
mov ecx, dword [ebx + 0x38]
push 6
pop eax
push 3
cmp byte [ecx + 0x34], 0
pop edx
cmove eax, edx
cmp byte [ecx + 0x36], 0
lea esi, [eax + 4]
cmove esi, eax
mov eax, dword [ebp - 0x100]
test eax, eax
je 0x10127ef5
mov dword [ecx + 0x30], esi
lea esi, [esi + eax*2]
call sym.rt3d.dll_public:_static_class_e3_MEM____stdcall_e3_MEM::Create_void_
mov ecx, dword [ebx + 0x38]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x38]
cmp dword [eax + 8], 0
je 0x10128dc1
push 0x20
call fcn.10038cdf
pop ecx
mov dword [ebp - 0xf8], eax
and dword [ebp - 4], 0
test eax, eax
je 0x10127f33
mov ecx, dword [ebx + 0x38]
push esi
push dword [ecx + 8]
mov ecx, eax
call fcn.10038cdf
jmp 0x10127f35
xor eax, eax
mov ecx, dword [ebx + 0x38]
or dword [ebp - 4], 0xffffffff
mov dword [ecx + 0xc], eax
mov ecx, dword [ebx + 0x38]
cmp dword [ecx + 0xc], 0
je 0x10128dc1
xor ecx, ecx
mov eax, esi
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10038cdf
mov dword [ebx + 0x20], eax
pop ecx
test eax, eax
je 0x10128dc1
xor esi, esi
mov dword [ebp - 0xd0], esi
cmp dword [ebx + 8], esi
jbe 0x10128714
xor eax, eax
mov dword [ebp - 0x120], 0x11
mov dword [ebp - 0x110], eax
mov edx, dword [ebx + 0x30]
add edx, eax
mov dword [ebp - 0x104], edx
test byte [edx + 8], 2
jne 0x101286f4
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x9a]
test eax, eax
je 0x10127fb7
mov eax, dword [eax + esi*4]
jmp 0x10127fba
mov eax, dword [ecx + 0x5c]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x36], 0
je 0x10127fd4
mov eax, dword [ecx + 0xaa]
lea eax, [eax + esi*4]
jmp 0x10127fd6
xor eax, eax
mov dword [ebp - 0xf0], eax
test eax, eax
je 0x10127ff7
and dword [ebp - 0xb8], 0
cmp dword [eax], 0
cmove eax, dword [ebp - 0xb8]
mov dword [ebp - 0xf0], eax
mov eax, esi
shl eax, 2
mov dword [ebp - 0xd4], eax
mov eax, dword [ecx + 0x9e]
add eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], eax
xor eax, eax
inc eax
test byte [edx + 8], al
je 0x101283d6
and dword [ebp - 0xe8], 0
cmp dword [edx + 4], 0
jle 0x101286f4
push dword [ebx + 0x3c]
push 3
pop eax
push eax
push edi
call fcn.10126629
add esp, 0xc
test eax, eax
js 0x10128dc4
mov ecx, dword [ebx + 0x38]
push 3
pop eax
push eax
push esi
call fcn.10038cdf
mov esi, eax
mov dword [ebp - 0xec], esi
test esi, esi
je 0x10128dc1
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx]
mov dword [ebp - 0xb8], eax
sub eax, dword [ecx + 0x102]
cdq
idiv dword [ebp - 0x120]
imul edx, eax, 6
add edx, dword [ecx + 0x10a]
mov dword [esi + 8], eax
xor esi, esi
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], esi
mov edx, dword [ebx]
mov eax, dword [ebp - 0xe0]
cmp dword [edx + 0x10a], 0
mov ecx, dword [eax]
je 0x101280c8
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + esi*2]
mov eax, dword [ecx + eax*4]
jmp 0x101280cb
mov eax, dword [ecx + esi*4]
test dword [edi + 0x28], 0x200
mov dword [ebp - 0xdc], eax
je 0x101280f4
imul eax, eax, 0xc
lea ecx, [ebp - 0x12c]
push 1
push ecx
add eax, dword [edx + 0x62]
push eax
push dword [edi + 0x24]
call fcn.10038cdf
jmp 0x10128123
cmp dword [edx + 0x10a], 0
lea edi, [ebp - 0x12c]
je 0x10128113
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + esi*2]
imul esi, dword [ecx + eax*4], 0xc
jmp 0x10128117
imul esi, dword [ecx + esi*4], 0xc
add esi, dword [edx + 0x62]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc4]
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x12c]
push 3
movss dword [eax], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x128]
movss dword [eax + 4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x124]
movss dword [eax + 8], xmm0
pop eax
mov edi, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x34], 0
je 0x101281a1
mov eax, dword [ebp - 0xb8]
push 6
pop edi
mov dword [ebp - 0xbc], edi
mov ecx, dword [eax + esi*4 + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0xf6]
mov edx, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x20]
mov eax, dword [edx]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebx + 0x20]
mov eax, dword [edx + 4]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebx + 0x20]
mov eax, dword [edx + 8]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x36], 0
je 0x10128296
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x10128266
mov edx, dword [ebx]
lea edi, [ebp - 0x154]
mov ecx, dword [eax]
cmp dword [edx + 0x10a], 0
je 0x101281dc
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + esi*2]
imul esi, dword [ecx + eax*4], 0xc
jmp 0x101281e0
imul esi, dword [ecx + esi*4], 0xc
add esi, dword [edx + 0x7e]
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp - 0xc4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xbc]
movss xmm0, dword [ebp - 0x154]
movss dword [eax + edi*4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x150]
movss dword [eax + edi*4 + 4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x14c]
movss dword [eax + edi*4 + 8], xmm0
mov eax, dword [ebx]
mov esi, dword [eax + 0x6a]
test esi, esi
je 0x10128254
cmp dword [eax + 0x10a], 0
je 0x10128245
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
jmp 0x10128248
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebx + 0x20]
mov eax, dword [esi + eax*4]
mov dword [ecx + edi*4 + 0xc], eax
jmp 0x1012825f
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4 + 0xc], 0x3f800000
push 4
pop eax
add edi, eax
jmp 0x1012829c
mov eax, dword [ebx + 0x20]
push 4
mov dword [eax + edi*4], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4 + 4], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4 + 8], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4 + 0xc], 0x3f800000
pop eax
add edi, eax
mov edx, dword [ebp - 0xc4]
xor esi, esi
cmp dword [ebp - 0x100], esi
jle 0x10128340
shl edi, 2
mov dword [ebp - 0xbc], edi
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + esi*4]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
test ecx, ecx
je 0x1012830d
mov eax, dword [ebx]
cmp dword [eax + 0x10a], 0
je 0x101282e5
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + edx*2]
mov ecx, dword [ecx + eax*4]
jmp 0x101282e8
mov ecx, dword [ecx + edx*4]
mov eax, dword [edi + ecx*8]
mov dword [ebp - 0xfc], eax
mov eax, dword [edi + ecx*8 + 4]
movss xmm1, dword [ebp - 0xfc]
mov dword [ebp - 0xf8], eax
movss xmm0, dword [ebp - 0xf8]
jmp 0x10128313
xorps xmm0, xmm0
xorps xmm1, xmm1
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebx + 0x20]
movss dword [ecx + eax], xmm1
mov eax, dword [ebx + 0x20]
movss dword [ecx + eax + 4], xmm0
add ecx, 8
inc esi
mov dword [ebp - 0xbc], ecx
cmp esi, dword [ebp - 0x100]
jl 0x101282b3
push dword [ebp - 0xd8]
push dword [ebx + 0x20]
push dword [ebp - 0xdc]
push dword [ebx + 0x38]
call fcn.10038cdf
mov esi, dword [ebp - 0xc4]
add esp, 0x10
mov ecx, dword [ebp - 0xec]
mov dword [ecx + esi*4 + 0x14], eax
cmp eax, 0xffffffff
je 0x10128dc1
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x10128397
mov eax, dword [ebx]
cmp dword [eax + 0x10a], 0
je 0x10128394
mov eax, dword [ebp - 0xc0]
movzx eax, word [eax + esi*2]
mov dword [ecx + esi*4], eax
jmp 0x10128397
mov dword [ecx + esi*4], esi
mov edi, dword [ebp - 0xcc]
inc esi
push 3
pop eax
mov dword [ebp - 0xc4], esi
cmp esi, eax
jl 0x101280a6
mov esi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x104]
inc esi
mov dword [ebp - 0xe8], esi
cmp esi, dword [eax + 4]
mov esi, dword [ebp - 0xd0]
jl 0x10128031
jmp 0x101286ee
push esi
call fcn.10038cdf
push dword [ebx + 0x3c]
movzx esi, ax
push esi
push edi
mov dword [ebp - 0xc8], esi
call fcn.10126629
add esp, 0xc
test eax, eax
js 0x10128dc4
mov ecx, dword [ebx + 0x38]
push esi
push dword [ebp - 0xd0]
call fcn.10038cdf
mov esi, eax
mov dword [ebp - 0xec], esi
test esi, esi
je 0x10128dc1
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [ebx]
sub eax, dword [ecx + 0x102]
cdq
idiv dword [ebp - 0x120]
imul edx, eax, 6
add edx, dword [ecx + 0x10a]
mov dword [esi + 8], eax
xor esi, esi
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xc0], esi
cmp dword [ebp - 0xc8], esi
jbe 0x101286ee
mov edx, dword [ebx]
mov eax, dword [ebp - 0xe0]
cmp dword [edx + 0x10a], 0
mov ecx, dword [eax]
je 0x1012847a
mov eax, dword [ebp - 0xb8]
movzx eax, word [eax + esi*2]
mov eax, dword [ecx + eax*4]
jmp 0x1012847d
mov eax, dword [ecx + esi*4]
test dword [edi + 0x28], 0x200
mov dword [ebp - 0xdc], eax
je 0x101284a6
imul eax, eax, 0xc
lea ecx, [ebp - 0x148]
push 1
push ecx
add eax, dword [edx + 0x62]
push eax
push dword [edi + 0x24]
call fcn.10038cdf
jmp 0x101284bc
imul esi, dword [ecx + esi*4], 0xc
lea edi, [ebp - 0x148]
add esi, dword [edx + 0x62]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xc0]
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x148]
push 3
movss dword [eax], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x144]
movss dword [eax + 4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x140]
movss dword [eax + 8], xmm0
pop eax
mov edx, eax
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x34], 0
je 0x10128558
mov ecx, dword [ebx]
push esi
mov eax, dword [ecx + 0x9e]
add eax, dword [ebp - 0xd4]
push eax
push dword [ebp - 0x104]
push ecx
call fcn.10038cdf
mov edx, dword [ebx + 0x20]
add esp, 0x10
mov edi, eax
push 0xc
pop eax
test edi, edi
je 0x1012853d
mov ecx, dword [edi]
mov dword [edx + eax], ecx
mov ecx, dword [ebx + 0x20]
mov eax, dword [edi + 4]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebx + 0x20]
mov eax, dword [edi + 8]
mov dword [ecx + 0x14], eax
jmp 0x10128552
and dword [edx + eax], 0
mov eax, dword [ebx + 0x20]
and dword [eax + 0x10], 0
mov eax, dword [ebx + 0x20]
mov dword [eax + 0x14], 0x3f800000
mov eax, dword [ebx + 0x38]
push 6
pop edx
cmp byte [eax + 0x36], 0
je 0x10128610
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x101285e0
mov ecx, dword [eax]
lea edi, [ebp - 0x1c]
mov eax, dword [ebx]
imul ecx, dword [ecx + esi*4], 0xc
mov esi, dword [eax + 0x7e]
mov eax, dword [ebx + 0x20]
add esi, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc0]
movss dword [eax + edx*4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x18]
movss dword [eax + edx*4 + 4], xmm0
mov eax, dword [ebx + 0x20]
movss xmm0, dword [ebp - 0x14]
movss dword [eax + edx*4 + 8], xmm0
mov eax, dword [ebx]
mov edi, dword [eax + 0x6a]
test edi, edi
je 0x101285ce
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
mov eax, dword [edi + eax*4]
mov dword [ecx + edx*4 + 0xc], eax
jmp 0x101285d9
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4 + 0xc], 0x3f800000
push 4
pop eax
add edx, eax
jmp 0x10128616
mov eax, dword [ebx + 0x20]
push 4
mov dword [eax + edx*4], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4 + 4], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4 + 8], 0x3f800000
mov eax, dword [ebx + 0x20]
mov dword [eax + edx*4 + 0xc], 0x3f800000
pop eax
add edx, eax
mov esi, dword [ebp - 0xc0]
xor edi, edi
cmp dword [ebp - 0x100], edi
jle 0x10128698
shl edx, 2
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edi*4]
add eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
test ecx, ecx
je 0x10128675
mov ecx, dword [ecx + esi*4]
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0xbc]
movss xmm1, dword [ebp - 0x134]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x130], eax
movss xmm0, dword [ebp - 0x130]
jmp 0x1012867b
xorps xmm0, xmm0
xorps xmm1, xmm1
mov eax, dword [ebx + 0x20]
movss dword [edx + eax], xmm1
mov eax, dword [ebx + 0x20]
movss dword [edx + eax + 4], xmm0
add edx, 8
inc edi
cmp edi, dword [ebp - 0x100]
jl 0x10128623
push dword [ebp - 0xd8]
push dword [ebx + 0x20]
push dword [ebp - 0xdc]
push dword [ebx + 0x38]
call fcn.10038cdf
mov esi, dword [ebp - 0xc0]
add esp, 0x10
mov ecx, dword [ebp - 0xec]
mov dword [ecx + esi*4 + 0x14], eax
cmp eax, 0xffffffff
je 0x10128dc1
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x101286d5
mov dword [eax + esi*4], esi
mov edi, dword [ebp - 0xcc]
inc esi
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0xc8]
jl 0x10128458
mov esi, dword [ebp - 0xd0]
push 0xc
inc esi
pop eax
add dword [ebp - 0x110], eax
mov dword [ebp - 0xd0], esi
cmp esi, dword [ebx + 8]
jae 0x10128714
mov eax, dword [ebp - 0x110]
jmp 0x10127f91
mov eax, dword [ebx + 0x38]
cmp dword [eax + 0x1c], 0
je 0x10128730
push dword [ebx + 0x3c]
push edi
call fcn.10126cd1
pop ecx
pop ecx
test eax, eax
js 0x10128dc4
push dword [ebx + 0x20]
call fcn.1014342d
and dword [ebx + 0x20], 0
jmp 0x10129d4b
xor eax, eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xc0], eax
cmp dword [edi + 0x14], eax
jg 0x10129d41
cmp dword [edi + 0x1c], eax
jg 0x10129d41
push 0x164
call fcn.10038cdf
pop ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x10128797
push dword [ebx + 0x3c]
mov ecx, eax
call fcn.100c829d
mov edi, eax
mov dword [ebp - 0xe4], eax
jmp 0x1012879f
xor edi, edi
mov dword [ebp - 0xe4], edi
or dword [ebp - 4], 0xffffffff
test edi, edi
je 0x10128dc1
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0xc], edi
mov eax, dword [edi + 0x148]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x34]
mov dword [edi + 0x148], ecx
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x38]
push dword [eax]
push edi
call fcn.10038cdf
mov esi, dword [edi]
xor eax, eax
pop ecx
pop ecx
inc eax
mov esi, dword [esi + 0x118]
mov ecx, esi
push eax
mov eax, dword [ebx]
push dword [eax + 0x66]
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
cmp dword [ebp - 0xe0], 0
jne 0x1012882e
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x36], 0
jne 0x1012882e
mov eax, dword [ebp - 0xcc]
jmp 0x1012883b
mov eax, dword [ebp - 0xcc]
or dword [eax + 0x28], 0x3000
mov edx, dword [eax + 0x28]
mov ecx, dword [ebx]
test edx, 0x200
je 0x1012885b
push dword [ecx + 0x66]
push dword [edi + 0x62]
push dword [ecx + 0x62]
push dword [eax + 0x24]
call fcn.10038cdf
jmp 0x1012886e
imul eax, dword [ecx + 0x66], 0xc
push eax
push dword [ecx + 0x62]
push dword [edi + 0x62]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, dword [edi]
xor eax, eax
inc eax
push eax
push 0xffffffffffffffff
push dword [ebp - 0xd4]
mov esi, dword [esi + 0x128]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
and dword [ebp - 0xc4], 0
cmp dword [edi + 0xb2], 0
je 0x10128a31
cmp byte [ebp - 0xf0], 0
je 0x10128900
mov eax, dword [ebp - 0xcc]
test byte [eax + 0x28], 0x10
je 0x101288e1
mov eax, dword [0x107d1580]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov dword [ebx + 0x2c], eax
test eax, eax
je 0x10128dc1
mov eax, dword [edi]
push 1
push 0
push edi
mov esi, dword [eax + 0x12c]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebp - 0xcc]
test byte [eax + 0x28], 0x40
je 0x10128947
mov eax, dword [0x107d1580]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc8]
mov ecx, esi
call dword [0x10151b24]
call esi
xor ecx, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [edi]
inc ecx
push ecx
push ecx
push edi
mov esi, dword [eax + 0x130]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx]
cmp dword [eax + 0x96], 0
je 0x1012896d
mov eax, dword [edi]
push edi
mov esi, dword [eax + 0x14c]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov esi, dword [ebp - 0xcc]
test dword [esi + 0x28], 0x1000
je 0x10128994
lea eax, [ebp - 0x120]
mov ecx, edi
push eax
push 0x14
call fcn.10038cdf
test eax, eax
js 0x10128dc4
test dword [esi + 0x28], 0x4000
je 0x101289b5
lea eax, [ebp - 0xe8]
mov ecx, edi
push eax
push 0x15
call fcn.10038cdf
test eax, eax
js 0x10128dc4
test dword [esi + 0x28], 0x2000
je 0x10128a04
xor eax, eax
mov ecx, edi
inc eax
push eax
push eax
push 0
push 0x16
call fcn.10038cdf
test eax, eax
js 0x10128dc4
mov eax, dword [edi]
push 0x16
push edi
mov esi, dword [eax + 0x158]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [eax + 0x14]
test eax, eax
je 0x101289fd
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc0], ecx
jmp 0x10128a04
and dword [ebp - 0xc0], 0
mov eax, dword [ebx]
cmp dword [eax + 0x9a], 0
je 0x10128a2b
mov eax, dword [edi]
push edi
mov esi, dword [eax + 0x13c]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
jns 0x10128a31
jmp 0x10128dc4
mov eax, dword [eax + 0x5c]
mov dword [edi + 0x5c], eax
xor esi, esi
mov dword [ebp - 0xbc], esi
cmp dword [ebx + 8], esi
jbe 0x10129223
imul edx, esi, 0xc
add edx, dword [ebx + 0x30]
mov dword [ebp - 0xdc], edx
test byte [edx + 8], 2
jne 0x10129213
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x9a]
test eax, eax
je 0x10128a69
mov eax, dword [eax + esi*4]
jmp 0x10128a6c
mov eax, dword [ecx + 0x5c]
cmp byte [ebp - 0xf0], 0
mov dword [ebp - 0xd4], eax
je 0x10128a86
mov eax, dword [ecx + 0xa2]
lea eax, [eax + esi*4]
jmp 0x10128a88
xor eax, eax
mov dword [ebp - 0x114], eax
test eax, eax
je 0x10128aa9
and dword [ebp - 0xb8], 0
cmp dword [eax], 0
cmove eax, dword [ebp - 0xb8]
mov dword [ebp - 0x114], eax
mov eax, esi
shl eax, 2
mov dword [ebp - 0x110], eax
mov eax, dword [ecx + 0x9e]
add eax, dword [ebp - 0x110]
mov dword [ebp - 0xc8], eax
xor eax, eax
inc eax
test byte [edx + 8], al
je 0x10128efa
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
cmp dword [edx + 4], ecx
jle 0x10129213
mov eax, dword [edx]
push 0x11
pop esi
push 3
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebx]
mov dword [ebp - 0xd8], eax
sub eax, dword [ecx + 0x102]
cdq
idiv esi
imul eax, eax, 6
add eax, dword [ecx + 0x10a]
pop ecx
mov dword [ebp - 0x108], eax
mov eax, dword [edi]
push ecx
mov ecx, dword [ebp - 0xc4]
push ecx
mov esi, dword [eax + 0xfc]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov edx, dword [ebp - 0xc4]
mov eax, dword [edi + 0x9e]
shl edx, 2
add eax, edx
cmp dword [ebx + 0x24], 0
mov dword [ebp - 0xd0], eax
je 0x10128b5e
mov eax, dword [edi + 0xa6]
add eax, edx
mov dword [ebp - 0x118], eax
jmp 0x10128b65
and dword [ebp - 0x118], 0
mov ecx, dword [ebp - 0x120]
test ecx, ecx
je 0x10128b7a
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax]
mov dword [ecx + edx], eax
mov esi, dword [ebp - 0xe8]
test esi, esi
je 0x10128ba1
mov ecx, dword [ebx]
mov eax, dword [ebp - 0xd8]
push 0x11
sub eax, dword [ecx + 0x102]
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp - 0xc4]
mov dword [esi + ecx*4], eax
mov eax, dword [ebx]
mov ebx, dword [ebp - 0xd0]
cmp dword [eax + 0x10a], 0
je 0x10128cd1
mov edi, dword [ebp - 0x108]
xor esi, esi
mov eax, dword [ebp - 0xc8]
movzx edx, word [edi]
mov ecx, dword [ebx]
push 2
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
mov dword [esi + ecx], eax
pop eax
push 4
add edi, eax
pop eax
add esi, eax
push 0xc
pop eax
cmp esi, eax
jl 0x10128bbe
cmp dword [ebp - 0xc0], 0
mov ebx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
je 0x10128c31
mov esi, dword [ebp - 0x108]
xor edx, edx
mov ebx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xc0]
mov eax, dword [edi + ebx*4]
movzx ecx, word [esi]
push 2
mov dword [edx + eax], ecx
pop eax
push 4
add esi, eax
pop eax
add edx, eax
push 0xc
pop eax
cmp edx, eax
jl 0x10128c0b
mov ebx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xc4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x96]
test eax, eax
je 0x10128c65
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x110]
movzx ecx, byte [ecx + 4]
xor ecx, dword [edx + eax]
and ecx, 7
xor ecx, dword [edx + eax]
mov eax, dword [edi + 0x96]
mov dword [eax + esi*4], ecx
cmp dword [ebp - 0x114], 0
je 0x10128e22
mov eax, dword [edi]
push 0x384
push esi
push edi
mov esi, dword [eax + 0x100]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, eax
mov dword [ebp - 0xd0], ecx
test ecx, ecx
je 0x10128dc1
mov eax, dword [ebp - 0x108]
xor esi, esi
mov dword [ebp - 0xec], esi
cmp dword [ebx + 0x2c], 0
mov edx, dword [ebx]
je 0x10128dcc
cmp dword [edx + 0x10a], 0
mov edx, dword [edx + 0x6e]
je 0x10128d35
movzx ecx, word [eax]
mov eax, dword [ebp - 0x114]
mov eax, dword [eax]
mov ecx, dword [eax + ecx*4]
jmp 0x10128d40
mov edi, dword [ebp - 0xc8]
xor edx, edx
mov eax, dword [edi]
mov ecx, dword [ebx]
push 4
mov eax, dword [edx + eax]
mov dword [edx + ecx], eax
pop eax
add edx, eax
push 0xc
pop eax
cmp edx, eax
jl 0x10128cd9
cmp dword [ebp - 0xc0], 0
mov ebx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
je 0x10128c31
mov esi, dword [ebp - 0xc4]
xor ecx, ecx
mov edi, dword [ebp - 0xc0]
push 3
pop ebx
mov eax, dword [edi + esi*4]
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, ebx
jl 0x10128d19
mov ebx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
jmp 0x10128c37
mov eax, dword [ebp - 0x114]
mov eax, dword [eax]
mov ecx, dword [esi + eax]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x134], eax
mov eax, dword [edx + ecx*8 + 4]
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xd4]
push 0
push ecx
lea ecx, [ebp - 0x134]
mov esi, dword [eax]
push ecx
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x2c]
lea ecx, [ebp - 0x138]
push ecx
lea ecx, [ebp - 0x150]
push ecx
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x10]
call dword [0x10151b24]
call dword [esi + 0x10]
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xec]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x138]
mov dword [esi + ecx], eax
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx]
cmp dword [esi + eax], 0xffffffff
jne 0x10128dfb
push 0xfffffffffffffff4
pop eax
call fcn.10143726
ret 8
cmp dword [edx + 0x102], 0
mov ecx, dword [ecx]
je 0x10128de7
movzx edx, word [eax]
mov eax, dword [ebp - 0x114]
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
jmp 0x10128df2
mov eax, dword [ebp - 0x114]
mov eax, dword [eax]
mov eax, dword [esi + eax]
mov dword [esi + ecx], eax
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x108]
push 2
pop edx
add eax, edx
push 4
pop edx
add esi, edx
mov dword [ebp - 0x108], eax
push 0xc
pop edx
mov dword [ebp - 0xec], esi
cmp esi, edx
jl 0x10128ca9
cmp dword [ebp - 0x118], 0
je 0x10128e9c
xor edx, edx
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xd8]
lea edi, [ebp - 0x13c]
push edi
mov ecx, dword [eax + edx + 5]
mov eax, dword [ebx]
mov edx, dword [ebx + 0x24]
mov eax, dword [eax + 0xf6]
mov esi, dword [edx]
push dword [eax + ecx*8]
mov ecx, dword [esi + 0x10]
push edx
call dword [0x10151b24]
call dword [esi + 0x10]
mov esi, dword [ebp - 0x118]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x13c]
mov edi, dword [ebp - 0xe4]
mov ecx, dword [esi]
mov dword [edx + ecx], eax
mov eax, dword [esi]
cmp dword [edx + eax], 0xffffffff
je 0x10128dc1
push 4
pop eax
add edx, eax
push 0xc
pop eax
mov dword [ebp - 0xec], edx
cmp edx, eax
jl 0x10128e33
mov eax, dword [edi + 0x9a]
mov esi, dword [ebp - 0xc4]
test eax, eax
je 0x10128eb5
mov ecx, dword [ebp - 0xd4]
mov dword [eax + esi*4], ecx
mov ecx, dword [edi + 0x92]
test ecx, ecx
je 0x10128ed3
mov eax, dword [ebx]
mov edx, dword [ebp - 0x110]
mov eax, dword [eax + 0x92]
mov eax, dword [edx + eax]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xdc]
inc dword [ebp - 0xc4]
inc ecx
mov dword [ebp - 0xb8], ecx
cmp ecx, dword [edx + 4]
jl 0x10128ae3
jmp 0x1012920d
push esi
call fcn.10038cdf
movzx ecx, ax
mov dword [ebp - 0x108], ecx
mov ecx, dword [edi]
push eax
push dword [ebp - 0xc4]
mov esi, dword [ecx + 0xfc]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebp - 0x108]
mov esi, dword [ebp - 0xc4]
shl eax, 2
push eax
mov eax, dword [ebp - 0xc8]
shl esi, 2
mov dword [ebp - 0xd0], esi
push dword [eax]
mov eax, dword [edi + 0x9e]
push dword [esi + eax]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx]
add esp, 0xc
mov eax, dword [eax + 0x96]
test eax, eax
je 0x10128f7b
mov edx, dword [ebp - 0x110]
mov ecx, dword [edi + 0x96]
mov eax, dword [edx + eax]
mov dword [esi + ecx], eax
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0xe8]
test ecx, ecx
jne 0x10128f8f
test esi, esi
je 0x10128fd1
mov edx, dword [ebp - 0xdc]
mov edx, dword [edx]
test edx, edx
je 0x10128fd1
mov edx, dword [edx]
test ecx, ecx
je 0x10128fb2
mov esi, dword [ebp - 0xd0]
mov eax, dword [edx]
mov dword [ecx + esi], eax
mov esi, dword [ebp - 0xe8]
test esi, esi
je 0x10128fd1
mov ecx, dword [ebx]
push 0x11
sub edx, dword [ecx + 0x102]
mov eax, edx
cdq
pop ecx
idiv ecx
mov edx, dword [ebp - 0xd0]
mov dword [esi + edx], eax
jmp 0x10128fd7
mov edx, dword [ebp - 0xd0]
cmp dword [ebp - 0xc0], 0
je 0x10129003
mov esi, dword [ebp - 0x108]
xor ecx, ecx
test esi, esi
je 0x10129003
mov edi, dword [ebp - 0xc0]
mov eax, dword [edi + edx]
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, esi
jb 0x10128ff2
mov edi, dword [ebp - 0xe4]
cmp dword [ebp - 0x114], 0
je 0x10129126
mov eax, dword [edi]
mov ecx, dword [ebp - 0xc4]
push 0x384
push ecx
mov esi, dword [eax + 0x100]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
mov ecx, eax
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x10128dc1
xor eax, eax
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0x108], eax
jbe 0x10129126
mov edx, eax
mov eax, dword [ebp - 0x114]
shl edx, 2
mov dword [ebp - 0xec], edx
mov esi, dword [eax]
add esi, edx
cmp dword [ebx + 0x2c], 0
je 0x10129100
mov eax, dword [ebx]
mov ecx, dword [esi]
push 0
mov edx, dword [eax + 0x6e]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x144], eax
mov eax, dword [edx + ecx*8 + 4]
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0xd4]
push ecx
lea ecx, [ebp - 0x144]
push ecx
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x98]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x2c]
lea ecx, [ebp - 0x11c]
push ecx
lea ecx, [ebp - 0x128]
push ecx
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x10]
call dword [0x10151b24]
call dword [esi + 0x10]
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xec]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x11c]
mov dword [edx + ecx], eax
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx]
cmp dword [edx + eax], 0xffffffff
je 0x10128dc1
jmp 0x1012910d
mov ecx, dword [ecx]
mov eax, dword [esi]
mov dword [edx + ecx], eax
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0xb8], eax
cmp eax, dword [ebp - 0x108]
jb 0x10129053
cmp dword [ebx + 0x24], 0
mov ecx, dword [ebp - 0xd0]
je 0x101291d0
mov esi, dword [edi + 0xa6]
xor edx, edx
add esi, ecx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xb8], esi
cmp dword [ebp - 0x108], edx
jbe 0x101291d0
mov eax, dword [edi + 0x9e]
add eax, dword [ebp - 0x110]
push edx
push eax
push dword [ebp - 0xdc]
push dword [ebx]
call fcn.10038cdf
add esp, 0x10
test eax, eax
je 0x101291b5
mov ecx, dword [ebx + 0x24]
lea edx, [ebp - 0xf8]
push edx
push eax
push ecx
mov esi, dword [ecx]
mov ecx, dword [esi + 0x10]
call dword [0x10151b24]
call dword [esi + 0x10]
mov esi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [esi]
mov dword [ecx + edx*4], eax
mov eax, dword [esi]
cmp dword [eax + edx*4], 0xffffffff
je 0x10128dc1
jmp 0x101291bb
mov edx, dword [ebp - 0xc8]
inc edx
mov dword [ebp - 0xc8], edx
cmp edx, dword [ebp - 0x108]
jb 0x10129154
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 0x9a]
test eax, eax
je 0x101291e3
mov edx, dword [ebp - 0xd4]
mov dword [eax + ecx], edx
mov ecx, dword [edi + 0x92]
test ecx, ecx
je 0x10129207
mov eax, dword [ebx]
mov edx, dword [ebp - 0x110]
mov esi, dword [ebp - 0xd0]
mov eax, dword [eax + 0x92]
mov eax, dword [edx + eax]
mov dword [ecx + esi], eax
inc dword [ebp - 0xc4]
mov esi, dword [ebp - 0xbc]
inc esi
mov dword [ebp - 0xbc], esi
cmp esi, dword [ebx + 8]
jb 0x10128a42
cmp byte [ebp - 0xf0], 0
je 0x101292a0
mov ecx, dword [ebx + 0x2c]
test ecx, ecx
je 0x10129265
mov eax, dword [ecx]
push edi
push ecx
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx + 0x2c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x2c], 0
jmp 0x101292a0
mov esi, dword [edi]
xor eax, eax
inc eax
push eax
mov eax, dword [ebx]
mov esi, dword [esi + 0x11c]
mov ecx, esi
push dword [eax + 0x72]
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x72]
shl eax, 3
push eax
push dword [ecx + 0x6e]
push dword [edi + 0x6e]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x10129341
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x24]
mov edi, eax
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0xc]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xf8], eax
xor eax, eax
inc eax
push eax
mov ecx, dword [ecx]
push edi
mov edi, dword [ebp - 0xe4]
push edi
mov esi, dword [ecx + 0x120]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebp - 0xf8]
test eax, eax
je 0x1012932a
push 0xc
xor ecx, ecx
pop edx
mov edi, dword [edi + 0x76]
mov esi, eax
add edi, ecx
add ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0xc]
mov edi, dword [ebp - 0xe4]
test eax, eax
jne 0x10129311
mov eax, dword [ebx + 0x24]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x24], 0
mov ecx, dword [ebx]
mov eax, dword [ebp - 0xcc]
mov esi, dword [ecx + 0xbe]
test esi, esi
je 0x1012968b
test dword [eax + 0x28], 0x800
je 0x1012968b
mov eax, dword [eax + 0x20]
xor edx, edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xbc], eax
cmp eax, 2
jne 0x101293df
cmp dword [ecx + 0xb6], eax
je 0x101293df
xor eax, eax
mov dword [ebp - 0xec], eax
test esi, esi
je 0x101293c3
mov edi, ecx
push eax
mov ecx, edi
call fcn.10038cdf
mov edx, dword [ebp - 0xb8]
movzx eax, ax
dec edx
add edx, eax
mov eax, dword [ebp - 0xec]
inc eax
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xec], eax
cmp eax, esi
jb 0x10129390
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebx]
mov eax, dword [ebp - 0xbc]
push 2
pop esi
cmp dword [ecx + 0xb6], esi
je 0x101293e3
cmp eax, esi
je 0x101293e3
xor eax, eax
xor cl, cl
inc eax
jmp 0x101293e8
mov edx, esi
jmp 0x101293c9
xor eax, eax
inc eax
mov cl, al
mov esi, dword [edi]
push eax
push 2
or eax, 0xffffffff
mov byte [ebp - 0x109], cl
mov esi, dword [esi + 0x10c]
test cl, cl
pop ecx
cmovne eax, ecx
mov ecx, esi
push eax
push edx
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx]
cmp dword [eax + 0xd2], 0
je 0x1012943d
mov eax, dword [edi]
push edi
mov esi, dword [eax + 0x140]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx]
cmp dword [eax + 0xc2], 0
je 0x10129463
mov eax, dword [edi]
push edi
mov esi, dword [eax + 0x114]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov ecx, dword [ebx]
xor edx, edx
xor esi, esi
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xc0], esi
cmp dword [ecx + 0xbe], edx
jbe 0x10129685
and dword [ebp - 0xd4], edx
mov eax, edx
shl eax, 2
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0xca]
add eax, dword [ebp - 0xc8]
push edx
mov dword [ebp - 0xdc], eax
call fcn.10038cdf
mov cx, ax
mov eax, dword [ebp - 0xcc]
movzx edx, cx
mov dword [ebp - 0xf8], edx
cmp dword [eax + 0x20], 2
jne 0x101295ac
and dword [ebp - 0xd8], 0
lea ecx, [edx - 1]
mov dword [ebp - 0x11c], ecx
test ecx, ecx
jle 0x10129661
imul eax, esi, 0xc
mov dword [ebp - 0xbc], eax
mov edx, dword [edi + 0xca]
mov eax, esi
mov esi, dword [ebp - 0xd8]
shl eax, 2
add edx, eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
mov ecx, dword [edx]
mov eax, dword [eax + esi*4]
mov dword [ecx], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edx]
mov edx, esi
mov esi, dword [ebp - 0xc0]
mov eax, dword [eax]
mov eax, dword [eax + edx*4 + 4]
mov dword [ecx + 4], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0xd2]
mov dword [ebp - 0xf8], ecx
test ecx, ecx
je 0x10129554
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [edi + 0xd2]
mov eax, dword [eax + edx]
mov edx, dword [ebp - 0xd8]
mov dword [ecx + esi*4], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0xc2]
mov eax, dword [ebp - 0xbc]
test ecx, ecx
je 0x10129584
mov edi, dword [edi + 0xc2]
mov esi, dword [ebp - 0xd4]
add edi, eax
lea esi, [ecx + esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xc0]
inc esi
add eax, 0xc
inc edx
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xd8], edx
cmp edx, dword [ebp - 0x11c]
jl 0x101294e7
jmp 0x1012965b
cmp byte [ebp - 0x109], 0
jne 0x101295de
mov eax, dword [edi]
push ecx
push esi
push edi
mov esi, dword [eax + 0x110]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov esi, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xf8]
mov ecx, dword [edi + 0xca]
mov eax, esi
shl eax, 2
add ecx, eax
mov eax, edx
shl eax, 2
push eax
mov eax, dword [ebp - 0xdc]
push dword [eax]
push dword [ecx]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx]
add esp, 0xc
mov edx, dword [eax + 0xd2]
test edx, edx
je 0x10129623
mov eax, dword [ebp - 0xc8]
mov ecx, dword [edi + 0xd2]
mov eax, dword [eax + edx]
mov dword [ecx + esi*4], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc2]
test eax, eax
je 0x10129654
mov esi, dword [ebp - 0xd4]
mov edi, dword [edi + 0xc2]
lea esi, [eax + esi]
imul eax, dword [ebp - 0xc0], 0xc
add edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xc0]
inc esi
mov dword [ebp - 0xc0], esi
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx]
inc edx
add dword [ebp - 0xd4], 0xc
mov dword [ebp - 0xb8], edx
cmp edx, dword [ecx + 0xbe]
jb 0x10129487
jmp 0x1012968b
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x28]
test eax, 0x8000
je 0x101296bd
push edi
call fcn.10038cdf
pop ecx
test eax, eax
je 0x10128dc1
xor ecx, ecx
cmp dword [edi + 0x66], ecx
jbe 0x101296b4
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, dword [edi + 0x66]
jb 0x101296ab
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x28]
test al, 4
je 0x101296de
mov eax, dword [edi]
push 1
push edi
mov esi, dword [eax + 0x17c]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx + 0x38]
cmp byte [eax + 0x36], 0
jne 0x101296f4
cmp dword [ebp - 0xe0], 0
je 0x10129d4c
call sym.rt3d.dll_public:_static_class_e3_MEM____stdcall_e3_MEM::Create_void_
mov ecx, dword [ebx + 0x38]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x38]
cmp dword [eax + 8], 0
je 0x10128dc1
push 0x20
call fcn.10038cdf
pop ecx
mov dword [ebp - 0xf8], eax
push 2
pop ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x10129739
push 4
pop ecx
push ecx
mov ecx, dword [ebx + 0x38]
push dword [ecx + 8]
mov ecx, eax
call fcn.10038cdf
mov ecx, eax
jmp 0x1012973b
xor ecx, ecx
mov eax, dword [ebx + 0x38]
or dword [ebp - 4], 0xffffffff
mov dword [eax + 0xc], ecx
mov eax, dword [ebx + 0x38]
cmp dword [eax + 0xc], 0
je 0x10128dc1
cmp byte [eax + 0x36], 0
je 0x101299f9
mov eax, dword [edi]
xor ecx, ecx
inc ecx
push ecx
push ecx
mov esi, dword [eax + 0x134]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [edi]
push 0x14
push edi
mov esi, dword [eax + 0x158]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [eax + 0x14]
test eax, eax
je 0x1012979d
mov eax, dword [eax + 0x10]
jmp 0x1012979f
xor eax, eax
mov dword [ebp - 0xd8], eax
mov eax, dword [edi]
push 0x16
push edi
mov esi, dword [eax + 0x158]
mov ecx, esi
call dword [0x10151b24]
call esi
xor eax, eax
mov dword [ebp - 0xc8], eax
cmp dword [edi + 0xb2], eax
jbe 0x10129945
mov esi, dword [ebp - 0xd8]
push eax
mov ecx, edi
call fcn.10038cdf
movzx eax, ax
xor edx, edx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebx]
mov dword [ebp - 0xdc], edx
mov ecx, dword [eax + 0xaa]
test ecx, ecx
je 0x10129815
mov eax, dword [esi]
lea edx, [ecx + eax*4]
mov dword [ebp - 0xdc], edx
test edx, edx
je 0x10129815
xor eax, eax
cmp dword [edx], eax
cmove edx, eax
mov dword [ebp - 0xdc], edx
xor ecx, ecx
xor eax, eax
cmp cx, word [ebp - 0xb8]
jmp 0x10129915
movss xmm1, dword [0x1015d198]
mov dword [ebp - 0x124], 0x3f800000
mov dword [ebp - 0x128], 0x3f800000
mov dword [ebp - 0x12c], 0x3f800000
test edx, edx
je 0x1012987c
movzx ecx, ax
lea edi, [ebp - 0x12c]
mov eax, dword [edx]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx]
imul esi, ecx, 0xc
add esi, dword [eax + 0x7e]
mov eax, dword [eax + 0x6a]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
test eax, eax
je 0x1012989c
movss xmm1, dword [eax + ecx*4]
jmp 0x1012989c
mov eax, dword [ebx]
mov eax, dword [eax + 0x8a]
test eax, eax
je 0x1012989c
imul esi, dword [esi], 0xc
lea edi, [ebp - 0x12c]
add esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
movss xmm0, dword [ebp - 0x12c]
mov eax, dword [edi + 0xaa]
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x128]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0x18], xmm0
movss dword [ebp - 0x14], xmm1
mov eax, dword [eax + edx*4]
movzx ecx, cx
lea eax, [eax + ecx*4]
mov ecx, dword [ebx + 0x38]
push eax
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ecx + 0xc]
call fcn.10038cdf
test eax, eax
je 0x10128dc1
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xdc]
inc eax
cmp ax, word [ebp - 0xb8]
mov esi, dword [ebp - 0xd8]
mov dword [ebp - 0xbc], eax
jb 0x10129825
push 4
pop eax
add esi, eax
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xc8], eax
cmp eax, dword [edi + 0xb2]
jb 0x101297d4
mov esi, dword [edi]
xor eax, eax
inc eax
push eax
mov eax, dword [ebx + 0x38]
mov esi, dword [esi + 0x124]
mov ecx, esi
mov eax, dword [eax + 0xc]
push dword [eax + 0x10]
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [edi]
push edi
mov esi, dword [eax + 0x190]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x14]
test edx, edx
je 0x101299f9
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0xb8], eax
mov edi, dword [edi + 0x7e]
lea esi, [ebp - 0x1c]
movss xmm0, dword [edx + 0x1c]
add edi, eax
movss xmm1, dword [edx + 0x20]
movss xmm2, dword [edx + 0x24]
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x14], xmm2
movsd dword es:[edi], dword [esi]
push 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
mov eax, dword [edx + 0x28]
mov ecx, dword [edi + 0x6a]
mov dword [ebx + ecx], eax
mov eax, dword [ebp - 0xb8]
mov edx, dword [edx]
pop ecx
add eax, ecx
push 4
pop ecx
add ebx, ecx
mov dword [ebp - 0xb8], eax
test edx, edx
jne 0x1012999f
mov ebx, dword [ebp - 0x104]
cmp dword [ebp - 0xe0], 0
je 0x10129d4c
xor ecx, ecx
mov dword [ebp - 0x118], ecx
cmp dword [ebp - 0x100], ecx
jle 0x10129d4c
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xbc], eax
test ecx, ecx
je 0x10129d2c
mov eax, dword [edi]
xor esi, esi
and dword [ebp - 0xc8], esi
push 0x14
mov dword [ebp - 0xdc], esi
mov esi, dword [eax + 0x158]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10129a63
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xd8], eax
jmp 0x10129a6a
and dword [ebp - 0xd8], 0
mov eax, dword [edi]
push 0x16
push edi
mov esi, dword [eax + 0x158]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebx + 0x10]
mov esi, dword [edi]
mov eax, dword [eax + ecx*4]
mov esi, dword [esi + 0x194]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
mov ecx, esi
mov dword [ebp - 0x11c], eax
xor eax, eax
inc eax
push eax
push eax
push dword [ebp - 0xbc]
push edi
call dword [0x10151b24]
call esi
test eax, eax
js 0x10128dc4
mov eax, dword [0x107d1580]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov dword [ebx + 0x28], eax
test eax, eax
je 0x10128dc1
mov eax, dword [ebp - 0xbc]
mov ecx, dword [edi]
movzx eax, ax
mov dword [ebp - 0x138], eax
add eax, 0x384
push eax
mov esi, dword [ecx + 0x158]
mov ecx, esi
push edi
call dword [0x10151b24]
call esi
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10129b20
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xec], eax
jmp 0x10129b27
and dword [ebp - 0xec], 0
xor esi, esi
mov dword [ebp - 0xe0], esi
cmp dword [edi + 0xb2], esi
jbe 0x10129cf5
push esi
mov ecx, edi
call fcn.10038cdf
mov edx, dword [ebp - 0xd8]
movzx eax, ax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [edx]
lea ecx, [eax + edx*4]
mov dword [ebp - 0xd4], ecx
test ecx, ecx
je 0x10129b74
xor eax, eax
cmp dword [ecx], eax
cmove ecx, eax
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0xcc]
test byte [eax + 0x28], 0x10
je 0x10129be5
mov esi, dword [ebx]
mov eax, dword [esi + 0x9a]
test eax, eax
je 0x10129b91
mov esi, dword [eax + edx*4]
jmp 0x10129b94
mov esi, dword [esi + 0x5c]
cmp dword [ebp - 0xdc], esi
je 0x10129bdf
and dword [ebp - 0xc8], 0
lea eax, [esi + 0x88]
xor edx, edx
mov dword [ebp - 0xb8], eax
movzx eax, word [eax]
cmp eax, dword [ebp - 0xbc]
je 0x10129bd3
mov eax, dword [ebp - 0xb8]
inc edx
add eax, 0x60
mov dword [ebp - 0xb8], eax
cmp edx, 0x1a
jl 0x10129bb1
jmp 0x10129bd9
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xdc], esi
mov esi, dword [ebp - 0xe0]
xor edx, edx
mov dword [ebp - 0xb8], edx
cmp dword [ebp - 0x104], edx
jbe 0x10129cd9
test ecx, ecx
je 0x10129c66
mov eax, dword [ecx]
mov ecx, dword [eax + edx*4]
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0xf4], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x10129c79
push dword [ebp - 0xc8]
mov esi, dword [eax]
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [ebp - 0xf4]
push ecx
mov esi, dword [esi + 0x98]
mov ecx, esi
push eax
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x144]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0xf0], eax
jmp 0x10129c79
xorps xmm0, xmm0
movss dword [ebp - 0xf4], xmm0
movss dword [ebp - 0xf0], xmm0
mov eax, dword [ebx + 0x28]
lea ecx, [ebp - 0x13c]
push ecx
lea ecx, [ebp - 0xf4]
push ecx
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x10]
call dword [0x10151b24]
call dword [esi + 0x10]
mov ecx, dword [ebp - 0x13c]
cmp ecx, 0xffffffff
je 0x10128dc1
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0xb8]
mov eax, dword [eax + esi*4]
mov dword [eax + edx*4], ecx
inc edx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xb8], edx
cmp edx, dword [ebp - 0x104]
jl 0x10129bf9
push 4
pop eax
add dword [ebp - 0xd8], eax
inc esi
mov dword [ebp - 0xe0], esi
cmp esi, dword [edi + 0xb2]
jb 0x10129b3b
mov eax, dword [ebx + 0x28]
push dword [ebp - 0x138]
push edi
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x20]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x28]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x28], 0
mov ecx, dword [ebp - 0x118]
inc ecx
mov dword [ebp - 0x118], ecx
cmp ecx, dword [ebp - 0x100]
jl 0x10129a1a
jmp 0x10129d4c
push str.This_combination_of_e3_CONVERT.flags_not_yet_realized
call fcn.10038cdf
pop ecx
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10129d70
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x38]
and dword [eax + 8], 0
mov eax, dword [ebx + 0x38]
cmp dword [eax + 0xc], 0
je 0x10129d89
push 0x20
push dword [eax + 0xc]
call fcn.10038cdf
mov eax, dword [ebx + 0x38]
pop ecx
pop ecx
and dword [eax + 0xc], 0
cmp dword [ebx + 0x10], 0
je 0x10129d9c
push dword [ebx + 0x10]
call fcn.1014342d
and dword [ebx + 0x10], 0
pop ecx
cmp dword [ebx + 0xc], 0
je 0x10129daf
push dword [ebx + 0xc]
call fcn.1014342d
and dword [ebx + 0xc], 0
pop ecx
cmp dword [ebx + 0x14], 0
je 0x10129dc2
push dword [ebx + 0x14]
call fcn.1014342d
and dword [ebx + 0x14], 0
pop ecx
cmp dword [ebx + 0x18], 0
je 0x10129dd5
push dword [ebx + 0x18]
call fcn.1014342d
and dword [ebx + 0x18], 0
pop ecx
mov edi, dword [ebp - 0xcc]
cmp dword [edi + 0x18], 0
jle 0x1012a2e9
mov esi, dword [edi + 8]
test esi, esi
je 0x1012a0e8
mov esi, dword [esi + 0x24]
push 0x10
push esi
mov dword [ebp - 0xf8], esi
call sym.rt3d.dll_public:_static_class_e3_COLLECTION____stdcall_e3_COLLECTION::Create_int__int_
mov dword [ebx + 0x44], eax
test eax, eax
je 0x10128dc1
xor edx, edx
mov dword [ebp - 0xb8], edx
test esi, esi
jle 0x10129e62
mov eax, dword [ebx + 0x44]
push edx
mov edi, dword [eax]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [edi + 0x30]
push eax
push dword [ebx + 0x44]
call dword [0x10151b24]
call dword [edi + 0x30]
mov edx, dword [ebp - 0xb8]
inc edx
mov dword [ebp - 0xb8], edx
cmp edx, dword [ebp - 0xf8]
jl 0x10129e18
mov edi, dword [ebp - 0xcc]
mov eax, dword [edi + 8]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x28]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x44]
xor edx, edx
mov dword [ebp - 0xbc], edx
cmp dword [ecx + 0x24], edx
jle 0x1012a0a1
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x44]
push 0
push dword [ebp - 0xbc]
mov dword [ebp - 0xf0], eax
mov edx, dword [ecx]
push ecx
mov esi, dword [edx + 0x20]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [0x107d1580]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xa8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, eax
mov dword [ebx + 0x40], edx
test edx, edx
je 0x10128dc1
mov eax, dword [ebp - 0xf0]
push 1
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xe4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x40]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xf8], eax
cmp eax, 1
jle 0x1012a050
and dword [ebp - 0xe8], 0
test eax, eax
jle 0x1012a034
push 0x164
call fcn.10038cdf
pop ecx
mov dword [ebp - 0x11c], eax
push 3
pop ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x10129f4b
mov ecx, dword [ebx]
push dword [ecx + 0x28]
mov ecx, eax
call fcn.100c829d
mov edi, eax
jmp 0x10129f4d
xor edi, edi
or dword [ebp - 4], 0xffffffff
test edi, edi
je 0x10128dc1
mov eax, dword [ebp - 0xcc]
push edi
mov eax, dword [eax + 8]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x1012a0ba
push dword [ebp - 0xf0]
push edi
call fcn.10038cdf
mov eax, dword [edi + 0x148]
pop ecx
pop ecx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x34]
mov dword [edi + 0x148], ecx
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x40]
push 2
pop eax
push eax
mov eax, dword [ecx]
push dword [ebp - 0xe8]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0xf0]
push eax
push edi
call fcn.10038cdf
test eax, eax
js 0x10128dc4
push dword [ebp - 0xe8]
lea eax, [ebp - 0x30]
push str.sub__02d
push eax
call fcn.10038cdf
mov eax, dword [edi]
lea ecx, [ebp - 0x30]
add esp, 0xc
mov esi, dword [eax + 0x48]
push ecx
push edi
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0xe8]
inc esi
mov dword [ebp - 0xe8], esi
cmp esi, dword [ebp - 0xf8]
jl 0x10129f20
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xf0]
mov ecx, esi
call fcn.10038cdf
push 0x164
push esi
call fcn.10038cdf
pop ecx
pop ecx
jmp 0x1012a06d
mov eax, dword [edi + 8]
push dword [ebp - 0xf0]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
js 0x1012a0d3
mov ecx, dword [ebx + 0x40]
test ecx, ecx
je 0x1012a088
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x40], 0
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebx + 0x44]
inc edx
mov dword [ebp - 0xbc], edx
cmp edx, dword [ecx + 0x24]
jl 0x10129e89
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x44], 0
jmp 0x1012a2e9
mov ecx, edi
call fcn.10038cdf
push 0x164
push edi
call fcn.10038cdf
pop ecx
pop ecx
jmp 0x10128dc1
mov ebx, dword [ebp - 0xf0]
mov ecx, ebx
call fcn.10038cdf
push 0x164
push ebx
jmp 0x1012a0c7
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xf0], eax
mov eax, dword [0x107d1580]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xa8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, eax
mov dword [ebx + 0x40], edx
test edx, edx
je 0x10128dc1
mov eax, dword [ebp - 0xf0]
push 1
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xe4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x40]
xor eax, eax
inc eax
cmp dword [ecx + 0x24], eax
jle 0x1012a2ad
xor ecx, ecx
mov dword [edi + 0xc], ecx
mov eax, dword [ebx + 0x40]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xf8], eax
mov dword [ebx + 0x40], ecx
test eax, eax
jle 0x1012a291
push 0x164
call fcn.10038cdf
pop ecx
mov dword [ebp - 0x11c], eax
push 4
pop ecx
mov dword [ebp - 4], ecx
test eax, eax
je 0x1012a192
mov ecx, dword [ebx]
push dword [ecx + 0x28]
mov ecx, eax
call fcn.100c829d
jmp 0x1012a194
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x10128dc1
mov eax, dword [eax + 0x148]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebp - 0xe8]
push ecx
mov dword [eax + 0x148], ecx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0xf0]
push ecx
push dword [ebp - 0xe8]
call fcn.10038cdf
pop ecx
pop ecx
mov ecx, dword [edi + 8]
push 2
pop eax
push eax
mov eax, dword [ecx]
push dword [ebp - 0xe0]
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xf0]
push eax
push esi
call fcn.10038cdf
test eax, eax
js 0x10128dc4
mov eax, dword [edi + 8]
push esi
push dword [ebp - 0xe0]
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x20]
mov ecx, esi
call dword [0x10151b24]
call esi
push dword [ebp - 0xe0]
lea eax, [ebp - 0xb4]
push str.sub__02d
push eax
call fcn.10038cdf
mov ecx, dword [ebp - 0xf0]
lea edx, [ebp - 0xb4]
add esp, 0xc
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x48]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0xe0]
inc esi
mov dword [ebp - 0xe0], esi
cmp esi, dword [ebp - 0xf8]
jl 0x1012a169
mov esi, dword [ebp - 0xf0]
mov ecx, esi
call fcn.10038cdf
push 0x164
push esi
call fcn.10038cdf
pop ecx
pop ecx
jmp 0x1012a2e9
test ecx, ecx
je 0x1012a2e9
cmp dword [ecx + 0x24], 0
je 0x1012a2d5
mov eax, dword [ecx]
push 0
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0xf0]
mov dword [ecx + 0x5c], eax
mov ecx, dword [ebx + 0x40]
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x10151b24]
call esi
and dword [ebx + 0x40], 0
test dword [edi + 0x28], 0x100
je 0x1012a395
mov ecx, dword [ebx]
cmp dword [ecx + 0xee], 0
je 0x1012a395
cmp dword [ecx + 0xf6], 0
je 0x1012a395
mov eax, dword [ecx]
push 0
push ecx
mov esi, dword [eax + 0x188]
mov ecx, esi
call dword [0x10151b24]
call esi
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x1012a395
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012a37d
xor edx, edx
mov dword [ebp - 0xb8], edx
cmp dword [ecx + 0x24], edx
jle 0x1012a388
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
push dword [ebx + 0x1c]
push eax
call fcn.10038cdf
pop ecx
pop ecx
test eax, eax
js 0x10128dc4
mov edx, dword [ebp - 0xb8]
mov ecx, dword [edi + 8]
inc edx
mov dword [ebp - 0xb8], edx
cmp edx, dword [ecx + 0x24]
jl 0x1012a342
jmp 0x1012a388
push eax
push dword [edi + 0xc]
call fcn.10038cdf
pop ecx
pop ecx
push dword [ebx + 0x1c]
call fcn.1014342d
and dword [ebx + 0x1c], 0
pop ecx
xor eax, eax
inc eax
jmp 0x10128dc4