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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x370
mov esi, esp
mov dword [esi + 0x34], ecx
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [esi + 0x368], eax
xor eax, eax
dec eax
lea ecx, [esi + 0x310]
mov dword [ecx + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.1013e808
lea ebx, [esi + 0x300]
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx], xmm0
xor eax, eax
push eax
call fcn.1003c60a
add esp, 4
mov edi, eax
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [ebx], eax
xor eax, eax
inc eax
mov dword [ebx + 0xc], eax
mov ecx, ebx
push edi
call fcn.10044766
lea ebx, [esi + 0x2f0]
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx], xmm0
xor eax, eax
inc eax
push eax
call fcn.1003c60a
add esp, 4
mov edi, eax
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [ebx], eax
xor eax, eax
inc eax
mov dword [ebx + 0xc], eax
mov ecx, ebx
push edi
call fcn.10044766
lea edi, [esi + 0x2e0]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov eax, 2
push eax
call fcn.1003c60a
add esp, 4
mov ebx, eax
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [edi], eax
xor eax, eax
inc eax
mov dword [edi + 0xc], eax
mov ecx, edi
push ebx
call fcn.10044766
lea ebx, [esi + 0x2d0]
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx], xmm0
push 3
call fcn.1003c60a
add esp, 4
mov edi, eax
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [ebx], eax
xor eax, eax
inc eax
mov dword [ebx + 0xc], eax
mov ecx, ebx
push edi
call fcn.10044766
mov dword [esi + 4], esp
lea eax, [esi + 0x2c0]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
sub esp, 8
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
xor eax, eax
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.100b98da
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea edx, [esi + 0xf0]
mov dword [edx + 4], edi
mov dword [edx], eax
lea ecx, [esi + 0x2c0]
push edx
call fcn.100b9924
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
mov dl, byte [eax]
test dl, 0x88
mov ebx, 0x240
mov edi, 0
cmove ebx, edi
test dl, 2
mov byte [esi + 0x2f], dl
mov ecx, 0x240
cmovne ebx, ecx
mov dword [esi + 0x10], ebx
cmove ecx, edi
test dl, 0x88
mov edx, 0x480
cmove edx, ecx
mov dword [esi + 8], edx
mov eax, dword [eax + 4]
and eax, 0x3f
mov dword [esi + 0x40], eax
lea eax, [esi + 0x2b0]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2f0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x2b0]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [edi], eax
xor eax, eax
inc eax
mov dword [edi + 0xc], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 4]
mov dword [esi + 0xc], esp
lea eax, [esi + 0x2a0]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
mov ebx, eax
push eax
mov dword [esi + 4], esp
mov dword [esi + 0x14], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2f0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
mov dword [edi], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, ebx
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [ebx], eax
xor eax, eax
inc eax
mov dword [ebx + 0xc], eax
mov ecx, ebx
mov eax, dword [esi + 4]
push dword [eax]
call fcn.10044766
mov esp, dword [esi + 0xc]
mov dword [esi + 4], esp
lea eax, [esi + 0x290]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
push eax
mov edi, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2f0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ebx, [esi + 0x290]
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [ebx], eax
xor eax, eax
inc eax
mov dword [ebx + 0xc], eax
mov ecx, ebx
push dword [edi]
call fcn.10044766
mov esp, dword [esi + 4]
lea edi, [esi + 0x280]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov ecx, edi
call fcn.100446fc
mov eax, 0x1021bd44
mov dword [edi], eax
mov ebx, 0x10
mov dword [edi + 0xc], ebx
lea edi, [esi + 0x270]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov ecx, edi
call fcn.100446fc
mov dword [esi + 4], esp
mov eax, 0x1021bd44
mov dword [edi], eax
mov dword [edi + 0xc], ebx
sub esp, 8
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 0x220
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
xor edi, edi
push edi
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
push edi
push eax
call fcn.100447ea
lea ecx, [esi + 0x240]
xor edx, edx
inc edx
mov dword [ecx + 4], edx
mov dword [ecx], eax
lea eax, [esi + 0x220]
lea edx, [esi + 0xf0]
push edx
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x220
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
mov edi, ecx
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
lea ecx, [esi + 0x240]
xor edx, edx
inc edx
mov dword [ecx + 4], edx
mov dword [ecx], eax
lea ecx, [esi + 0x240]
push edi
lea eax, [esi + 0x220]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x220
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
mov edi, ecx
mov eax, 2
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
lea edx, [esi + 0x240]
xor ecx, ecx
inc ecx
mov dword [edx + 4], ecx
mov dword [edx], eax
lea ecx, [esi + 0x240]
push edi
lea eax, [esi + 0x220]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x224
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
xor edi, edi
push edi
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
push edi
push eax
call fcn.100447ea
lea ecx, [esi + 0x240]
xor edx, edx
inc edx
mov dword [ecx + 4], edx
mov dword [ecx], eax
lea ecx, [esi + 0x240]
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x220]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x224
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
mov edi, ecx
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
lea ecx, [esi + 0x240]
xor edx, edx
inc edx
mov dword [ecx + 4], edx
mov dword [ecx], eax
lea ecx, [esi + 0x240]
push edi
lea eax, [esi + 0x220]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x224
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
mov eax, 2
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor edi, edi
inc edi
lea ecx, [esi + 0x240]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0x240]
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0x220]
push eax
call fcn.100fa71a
mov ecx, ebx
xor ebx, ebx
dec ebx
call fcn.10048de8
lea ecx, [esi + 0x264]
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
push edi
call fcn.10045d2e
mov eax, dword [esi + 0x34]
test byte [esi + 0x2f], 8
je 0x10137f2b
mov dword [esi + 4], esp
lea eax, [esi + 0x220]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
push eax
mov edi, esp
xor eax, eax
push eax
xor ebx, ebx
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
push ebx
push eax
call fcn.100447ea
mov ebx, eax
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.1003cd7a
add esp, 0x18
mov dword [edi], eax
lea ecx, [esi + 0x220]
call fcn.10046816
mov esp, dword [esi + 4]
lea eax, [esi + 0x210]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov ebx, eax
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.1003cd7a
add esp, 0x18
mov dword [edi], eax
lea ecx, [esi + 0x210]
call fcn.10046816
mov esp, dword [esi + 4]
lea eax, [esi + 0x200]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov ebx, esp
mov eax, 2
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx], eax
lea ecx, [esi + 0x200]
call fcn.10046816
mov esp, dword [esi + 4]
lea eax, [esi + 0xe0]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov edi, esp
xor ebx, ebx
push ebx
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
push ebx
push eax
call fcn.100447ea
mov ebx, eax
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.1003cd7a
add esp, 0x18
mov dword [edi], eax
lea ecx, [esi + 0xe0]
call fcn.10046816
mov esp, dword [esi + 4]
lea ecx, [esi + 0xd0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov ebx, eax
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.1003cd7a
add esp, 0x18
mov dword [edi], eax
lea ecx, [esi + 0xd0]
call fcn.10046816
mov esp, dword [esi + 4]
lea ecx, [esi + 0xc0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov ebx, esp
mov eax, 2
push eax
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
call fcn.1003c4d0
sub esp, 0x18
movdqa xmm0, xmmword [0x1021bcd0]
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx], eax
lea ecx, [esi + 0xc0]
call fcn.10046816
mov esp, dword [esi + 4]
mov dword [esi + 0xc], esp
lea ecx, [esi + 0x4c]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 4], eax
mov dword [esi + 8], esp
add eax, 8
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [esi + 0x1c], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
mov dword [esi + 0x18], esp
mov eax, dword [esi + 4]
add eax, 4
mov dword [esi + 0x1c], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0x20], esp
add eax, 8
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [esi + 0x30], esp
mov dword [ebx + 8], eax
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 8]
add eax, 4
mov dword [esi + 0x24], eax
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x210]
call fcn.100447aa
mov dword [esi + 0x30], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x24]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x4c]
call fcn.10046aaa
mov esp, dword [esi + 0xc]
mov dword [esi + 4], esp
lea edi, [esi + 0x330]
xor eax, eax
dec eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
xor eax, eax
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046d19
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
mov ecx, 2
cmp eax, ecx
lea edi, [esi + 0xf0]
jg 0x10137b53
test eax, eax
jne 0x10137b43
mov dword [esi + 0xf0], 0
push edi
call fcn.1013e9a6
add esp, 4
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x10137b26
lea ecx, [esi + 0x330]
call fcn.100440c8
mov dword [esi + 0x10], esp
lea ecx, [esi + 0x258]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0x18], esp
mov dword [esi + 0x14], esp
sub esp, 0xc
mov dword [esi + 4], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov dword [esi + 0x20], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x30], eax
mov dword [esi + 0x24], esp
add eax, 4
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
mov ebx, dword [esi + 0x40]
shl ebx, 4
mov dword [esi + 8], ebx
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
mov dword [edi + 8], ebx
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
mov ecx, dword [esi + 0x30]
mov dword [ecx], edi
mov eax, 0xc
mov dword [ecx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x1c]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 0xc]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x1c], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
lea eax, [ecx + 4]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov dword [esi + 0xc], esp
mov dword [esi + 0x24], esp
sub esp, 8
mov dword [esi + 0x28], esp
mov dword [esi + 0x30], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x3c], esp
lea eax, [edi + 4]
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov ebx, dword [esi + 0x28]
mov dword [edi], ebx
mov eax, 0xc
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x30]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 0x24]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x24], esp
mov ecx, dword [esi + 0xc]
mov dword [ecx + 8], eax
sub esp, 8
mov dword [esi + 0x28], esp
mov dword [esi + 0x30], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x3c], esp
lea eax, [ebx + 4]
mov dword [esi + 0x38], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x38]
mov dword [edi], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov edi, dword [esi + 0x28]
mov dword [ebx], edi
mov eax, 0xc
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x30]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x240]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 0x24]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
call fcn.10044d76
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.10044d76
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x258]
call fcn.10045d5c
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x240]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 8], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0x10
mov edi, esp
mov dword [esi + 0x14], esp
lea eax, [edi + 8]
mov dword [esi + 0x18], eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046c6e
add esp, 8
mov esp, dword [esi + 0x14]
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
push eax
sub esp, 8
mov ebx, esp
xor eax, eax
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x258]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
lea ecx, [esi + 0x4c]
mov dword [edi + 0xc], ecx
mov ebx, ecx
call fcn.100447aa
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.1003d5b8
add esp, 0xc
mov ecx, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov esp, dword [esi + 8]
lea eax, [esi + 0x330]
mov dword [ecx], eax
mov ecx, ebx
call fcn.100448c8
mov esp, dword [esi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
shr eax, 0xc
and eax, 3
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x101380e0
cmp eax, 2
jne 0x1013817e
mov dword [esi + 4], esp
lea edi, [esi + 0x330]
xor eax, eax
dec eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
push 0
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046ca5
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
cmp eax, 2
lea edi, [esi + 0xf0]
jg 0x10138173
test eax, eax
jne 0x10137f16
mov dword [esi + 0xf0], 0
push edi
call fcn.1013e9a6
add esp, 4
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x10137ef9
jmp 0x10138173
mov eax, dword [eax + 4]
test byte [eax + 8], 1
je 0x101386c6
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
movdqa xmm0, xmmword [0x1021c300]
movdqu xmmword [esp + 0x10], xmm0
movdqu xmmword [esp], xmm0
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.10044b8c
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x1898
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100fff52
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0x240]
mov edi, dword [esi + 8]
mov dword [edi], eax
call fcn.1003e08a
mov edi, dword [edi + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push ebx
push edi
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x240], edi
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
pxor xmm0, xmm0
movdqu xmmword [esp + 0x10], xmm0
movdqu xmmword [esp], xmm0
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.10044b8c
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x18a0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100fff52
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0x240]
mov edi, dword [esi + 8]
mov dword [edi], eax
call fcn.1003e08a
mov edi, dword [edi + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push ebx
xor ebx, ebx
dec ebx
push edi
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x240], edi
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
lea ecx, [esi + 0xf0]
jmp 0x101386c1
mov dword [esi + 4], esp
lea edi, [esi + 0x330]
xor eax, eax
dec eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
push 0
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046cdf
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
cmp eax, 2
lea edi, [esi + 0xf0]
jg 0x10138173
test eax, eax
jne 0x10138163
mov dword [esi + 0xf0], 0
push edi
call fcn.1013e9a6
add esp, 4
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x10138146
lea ecx, [esi + 0x330]
call fcn.100440c8
mov dword [esi + 4], esp
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0x10
mov edi, esp
xor edx, edx
lea ecx, [esi + 0x330]
push edx
call fcn.10045d2e
mov dword [esi + 0x14], esp
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
xor eax, eax
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046c88
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
lea ebx, [esi + 0x264]
mov dword [edi + 8], ebx
lea eax, [esi + 0x330]
mov dword [edi + 0xc], eax
call fcn.1003e094
add esp, 0x10
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xf0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, ebx
call fcn.100448c8
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
mov al, byte [eax + 8]
test al, 1
mov ebx, 0xffffffff
je 0x10138591
mov dword [esi + 4], esp
lea edi, [esi + 0x330]
mov dword [edi + 0x14], ebx
mov dword [edi + 0x10], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
push 0
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046cc2
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
cmp eax, 2
jg 0x1013857a
cmp eax, 1
je 0x10138394
test eax, eax
jne 0x101383bb
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
movdqa xmm0, xmmword [0x1021c300]
movdqu xmmword [esp + 0x10], xmm0
movdqu xmmword [esp], xmm0
lea edi, [esi + 0x240]
mov ecx, edi
call fcn.10044b8c
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x1898
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100fff52
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0xfc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x234]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003e08a
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x234], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xf0]
call fcn.10048de8
lea edi, [esi + 0x240]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
pxor xmm0, xmm0
jmp 0x101384a5
push dword [esi + 0x340]
call fcn.1003c692
add esp, 4
call fcn.1003c4da
mov dword [esi + 0x33c], eax
push eax
call fcn.1003c4f4
add esp, 4
jmp 0x10138562
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
pxor xmm0, xmm0
movdqu xmmword [esp + 0x10], xmm0
movdqu xmmword [esp], xmm0
lea edi, [esi + 0x240]
mov ecx, edi
call fcn.10044b8c
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x1898
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100fff52
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0xfc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x234]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003e08a
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x234], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xf0]
call fcn.10048de8
lea edi, [esi + 0x240]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], ebx
sub esp, 0x20
movdqa xmm0, xmmword [0x1021c300]
movdqu xmmword [esp + 0x10], xmm0
movdqu xmmword [esp], xmm0
mov ecx, edi
call fcn.10044b8c
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x18a0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100fff52
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0xfc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x234]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003e08a
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x234], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xf0]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
mov ecx, dword [esi + 0x344]
lea eax, [ecx + 1]
mov dword [esi + 0x344], eax
cmp ecx, 2
jl 0x10138294
lea ecx, [esi + 0x330]
call fcn.100440c8
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
mov al, byte [eax + 8]
xor ebx, ebx
dec ebx
test al, 4
je 0x10138671
mov dword [esi + 4], esp
sub esp, 8
mov eax, esp
mov dword [esi + 8], eax
mov edi, esp
add eax, 4
mov dword [esi + 0xc], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 8], eax
push 0x3f000000
call fcn.1003d732
add esp, 4
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, edi
mov dword [esi + 0xc], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x1890
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [ebx + 4], 1
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0xf0]
mov edi, dword [esi + 8]
mov dword [edi], eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push ebx
xor ebx, ebx
dec ebx
push dword [edi + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [edi + 4]
mov dword [esi + 0xf0], eax
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
lea ecx, [esi + 0x258]
call fcn.10048de8
lea ecx, [esi + 0x4c]
call fcn.10048de8
lea ecx, [esi + 0xc0]
call fcn.10048de8
lea ecx, [esi + 0xd0]
call fcn.10048de8
lea ecx, [esi + 0xe0]
call fcn.10048de8
lea ecx, [esi + 0x200]
call fcn.10048de8
lea ecx, [esi + 0x210]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
test byte [esi + 0x2f], 8
sete al
mov dword [esi + 4], eax
lea eax, [esi + 0x258]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2e0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x500
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 8]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0x258]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 8], esp
lea ecx, [esi + 0x234]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2e0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x504
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 8]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0x234]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
dec eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx], xmm0
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x14], esp
lea eax, [ebx + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
push 0
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x234]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.100449c1
add esp, 0xc
mov esp, dword [esi + 0x14]
lea edi, [esi + 0xf0]
mov ecx, edi
push dword [esi + 4]
call fcn.10044874
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 8]
lea ecx, [esi + 0xf0]
call fcn.10048de8
mov eax, dword [edi + 0x14]
cmp eax, 2
jg 0x101390db
test eax, eax
jne 0x101390c7
mov dword [esi + 8], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xf0], xmm0
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 4], ecx
mov dword [esi + 0x14], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov eax, 0x10
push eax
call fcn.1003d090
add esp, 4
mov dword [esi + 0x1c], esp
mov dword [ebx + 8], eax
mov eax, 4
lea ecx, [ebx + eax]
mov dword [esi + 0x20], ecx
sub esp, 0xc
mov edi, esp
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x234]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 4
mov ecx, dword [esi + 4]
lea ebx, [ecx + eax]
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x2e0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x100
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov dword [eax], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100446fc
mov dword [esi + 0xf0], 0x10211324
xor eax, eax
inc eax
mov dword [esi + 0xfc], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 8]
xor eax, eax
dec eax
mov dword [esi + 0xe0], eax
mov dword [esi + 0xe4], eax
mov dword [esi + 0xe8], eax
lea ecx, [esi + 0xe0]
xor eax, eax
push eax
call fcn.10045d2e
call fcn.1003c4da
mov edi, eax
mov dword [esi + 8], eax
push eax
call fcn.1003c692
add esp, 4
push edi
call fcn.1003c4f4
add esp, 4
mov dword [esi + 4], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x240], xmm0
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x14], esp
mov eax, 8
add eax, edi
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x10]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x220]
mov ecx, ebx
call fcn.1013ea02
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x22c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x214], edi
mov dword [esi + 0x210], eax
lea ecx, [esi + 0x240]
mov edi, ecx
lea ebx, [esi + 0x210]
push ebx
call fcn.1013ea4c
lea ecx, [esi + 0x220]
call fcn.10048de8
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x220], xmm0
mov ecx, ebx
mov eax, 0x10
push eax
push edi
call fcn.100ac6b6
mov edi, dword [esi + 0x21c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x204], edi
mov dword [esi + 0x200], eax
lea ecx, [esi + 0x220]
lea eax, [esi + 0x200]
push eax
call fcn.10047438
mov ecx, ebx
call fcn.10048de8
xor edi, edi
dec edi
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd8], edi
lea ecx, [esi + 0xd0]
lea eax, [esi + 0x22c]
push eax
call fcn.100417b2
mov dword [esi + 4], esp
mov dword [esi + 0xc0], edi
mov dword [esi + 0xc4], edi
mov dword [esi + 0xc8], edi
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0x10
mov edi, esp
mov ecx, ebx
mov eax, 0x3f800000
push eax
call fcn.10046a04
mov dword [esi + 0x14], esp
mov eax, 8
add eax, edi
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, 0x3f800000
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046bac
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 4
add eax, edi
mov dword [esi + 0x18], eax
push eax
sub esp, 8
mov ebx, esp
xor eax, eax
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046cfc
add esp, 0xc
mov esp, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
mov dword [edi], ebx
lea ecx, [esi + 0x210]
mov dword [edi + 0xc], ecx
call fcn.100447aa
push eax
push dword [edi + 8]
push dword [edi + 4]
call fcn.1003d5b8
add esp, 0xc
mov dword [ebx], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xc0]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x210]
call fcn.10048de8
mov dword [esi + 0xc], esp
sub esp, 8
mov ecx, esp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], esp
mov eax, 4
add ecx, eax
mov dword [esi + 0x18], ecx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1c], esp
add eax, ecx
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x30], ecx
mov dword [esi + 0x28], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov dword [esi + 4], esp
mov dword [esi + 0x38], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x44], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x17fb0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x44]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x210]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 0x38]
mov ebx, dword [esi + 0x21c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x38], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
mov eax, 4
lea ebx, [ecx + eax]
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 8], eax
mov eax, 4
add eax, edi
lea ecx, [esi + 0x22c]
push eax
call fcn.10040ad2
mov dword [edi], ebx
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x28]
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 0x28], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x17fd0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x28]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x200]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 4]
mov ebx, dword [esi + 0x20c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
call fcn.1003f7fd
add esp, 8
mov esp, dword [esi + 0x14]
mov ebx, esp
lea ecx, [esi + 0xe0]
call fcn.100447aa
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, ebx
lea eax, [esi + 0x4c]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.1003c4d0
mov ecx, dword [ebx + 4]
sub esp, 0x1c
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x200]
call fcn.10048de8
lea ecx, [esi + 0x210]
call fcn.10048de8
mov dword [esi + 0xc], esp
sub esp, 8
mov ecx, esp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], esp
mov eax, 4
add ecx, eax
mov dword [esi + 0x18], ecx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1c], esp
add eax, ecx
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x30], ecx
mov dword [esi + 0x28], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov dword [esi + 4], esp
mov dword [esi + 0x38], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x44], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x17fc0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x44]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x210]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 0x38]
mov ebx, dword [esi + 0x21c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x38], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
mov eax, 4
lea ebx, [ecx + eax]
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 8], eax
mov eax, 4
add eax, edi
lea ecx, [esi + 0x22c]
push eax
call fcn.10043e42
mov dword [edi], ebx
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x28]
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 0x28], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x17fe0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x28]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x200]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 4]
mov ebx, dword [esi + 0x20c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
call fcn.1003f7fd
add esp, 8
mov esp, dword [esi + 0x14]
mov ebx, esp
lea ecx, [esi + 0xe0]
call fcn.100447aa
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, ebx
lea eax, [esi + 0x4c]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.1003c4d0
mov ecx, dword [ebx + 4]
sub esp, 0x1c
movdqa xmm0, xmmword [0x1021bcd0]
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x4c], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x200]
call fcn.10048de8
lea edi, [esi + 0x210]
mov ecx, edi
call fcn.10048de8
xor eax, eax
push eax
lea eax, [esi + 0xe0]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
lea ecx, [esi + 0xc0]
call fcn.10048de8
lea ecx, [esi + 0xd0]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
call fcn.1003c4da
mov edi, eax
mov dword [esi + 4], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x258]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [ebx + 4], eax
lea eax, [esi + 0x240]
mov dword [ebx], eax
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 4]
push dword [esi + 8]
push edi
push dword [esi + 0x240]
call fcn.1003c6ce
add esp, 0xc
push edi
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0xe0]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x10138886
lea ecx, [esi + 0x330]
call fcn.100440c8
lea eax, [esi + 0x1f4]
xor edi, edi
dec edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
xor ebx, ebx
push ebx
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
push ebx
push eax
call fcn.100447ea
xor ebx, ebx
inc ebx
lea edx, [esi + 0x330]
mov dword [edx + 4], ebx
mov dword [edx], eax
lea ecx, [esi + 0x1f4]
push edx
call fcn.10045daa
lea eax, [esi + 0x1e8]
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
xor ebx, ebx
push ebx
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x270]
push ebx
push eax
call fcn.100447ea
lea edx, [esi + 0x330]
xor ecx, ecx
inc ecx
mov dword [edx + 4], ecx
mov dword [edx], eax
lea ecx, [esi + 0x1e8]
push edx
call fcn.10045daa
lea ecx, [esi + 0x1dc]
mov dword [ecx], edi
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
xor eax, eax
inc eax
push eax
call fcn.10045d2e
call fcn.1003c4da
mov edi, eax
mov dword [esi + 4], eax
push eax
call fcn.1003c692
add esp, 4
push edi
call fcn.1003c4f4
add esp, 4
mov dword [esi + 8], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], esp
add eax, 4
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [esi + 0x18], esp
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1dc]
call fcn.100447aa
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, dword [esi + 0x18]
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10045fc1
add esp, 0xc
mov esp, dword [esi + 0x10]
lea eax, [esi + 0x330]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
lea ecx, [esi + 0x1f4]
call fcn.100448c8
mov esp, dword [esi + 8]
push eax
push eax
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], esp
add eax, 4
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [esi + 0x18], esp
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1dc]
call fcn.100447aa
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, dword [esi + 0x18]
call fcn.1003c4d0
sub esp, 0x18
movdqa xmm0, xmmword [0x1021bcd0]
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10045f85
add esp, 0xc
mov esp, dword [esi + 0x10]
lea edi, [esi + 0x330]
mov eax, dword [esi + 0xc]
mov dword [eax], edi
lea ecx, [esi + 0x1e8]
call fcn.100448c8
mov esp, dword [esi + 8]
xor eax, eax
push eax
lea eax, [esi + 0x1dc]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
call fcn.1003c4da
mov edi, eax
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x258]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1dc]
call fcn.100447aa
mov dword [ebx + 4], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 8]
push dword [esi + 4]
push edi
lea eax, [esi + 0x330]
push dword [eax]
call fcn.1003c6ce
add esp, 0xc
push edi
call fcn.1003c4f4
add esp, 4
mov dword [esi + 4], esp
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
sub esp, 8
mov ecx, esp
mov dword [esi + 0xc], esp
mov dword [esi + 8], ecx
add ecx, 4
mov dword [esi + 0x10], ecx
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x14], esp
lea ecx, [edi + 4]
mov dword [esi + 0x18], ecx
sub esp, 0xc
mov ebx, esp
test byte [eax + 0xc], 6
je 0x10139401
push 0xa
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x330]
mov eax, dword [esi + 8]
mov dword [eax], ecx
lea ecx, [esi + 0x1f4]
call fcn.100448c8
mov esp, dword [esi + 4]
push eax
push eax
mov ecx, esp
mov dword [esi + 8], ecx
mov dword [esi + 0xc], esp
mov eax, 4
add ecx, eax
mov dword [esi + 0x10], ecx
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x14], esp
add eax, edi
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
push 0x14
jmp 0x10139496
mov eax, 0xf
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x330]
mov eax, dword [esi + 8]
mov dword [eax], ecx
lea ecx, [esi + 0x1f4]
call fcn.100448c8
mov esp, dword [esi + 4]
push eax
push eax
mov ecx, esp
mov dword [esi + 8], ecx
mov dword [esi + 0xc], esp
mov eax, 4
add ecx, eax
mov dword [esi + 0x10], ecx
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x14], esp
add eax, edi
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov eax, 0xf
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0x330]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x1e8]
call fcn.100448c8
mov esp, dword [esi + 4]
mov dword [esi + 4], esp
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x18120
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x1c]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 0x18]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov ebx, dword [esi + 0x14]
mov dword [ebx + 8], eax
lea edi, [esi + 0x1f4]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10045f85
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xf0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x18124
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x1c]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 0x18]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push edi
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov edi, dword [esi + 0x14]
mov dword [edi + 8], eax
lea ebx, [esi + 0x1e8]
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10045fc1
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xf0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, ebx
call fcn.100448c8
mov esp, dword [esi + 4]
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
xor eax, eax
dec eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push eax
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
cmp eax, 2
jg 0x10139721
test eax, eax
jne 0x10139711
mov dword [esi + 0xf0], 0
lea eax, [esi + 0xf0]
push eax
call fcn.1013e9a6
add esp, 4
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x101396ee
lea ecx, [esi + 0x330]
call fcn.100440c8
lea edi, [esi + 0xe0]
xor eax, eax
dec eax
mov dword [edi + 8], eax
xor edx, edx
mov dword [edi], edx
mov dword [edi + 4], edx
mov byte [edi + 8], 1
lea ecx, [esi + 0xd0]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push edx
call fcn.10045d2e
mov ecx, edi
call fcn.10046a3c
test al, al
mov ebx, dword [esi + 0x34]
je 0x1013b534
mov dword [esi + 4], esp
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0xc]
and eax, 7
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0xe0]
call fcn.10046a76
mov esp, dword [esi + 4]
test al, al
je 0x1013b534
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xf0], xmm0
lea ecx, [esi + 0xf0]
call fcn.100446fc
mov edi, 0x1021bd44
mov dword [esi + 0xf0], edi
mov ebx, 0x10
mov dword [esi + 0xfc], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x240], xmm0
lea ecx, [esi + 0x240]
call fcn.100446fc
mov dword [esi + 0x240], edi
mov dword [esi + 0x24c], ebx
xor eax, eax
dec eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
xor eax, eax
push eax
call fcn.10045d2e
call fcn.1003c4da
mov edi, eax
push eax
call fcn.1003c692
add esp, 4
mov dword [esi + 4], edi
push edi
call fcn.1003c4f4
add esp, 4
mov edi, esp
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x280]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x334], ecx
mov dword [esi + 0x330], eax
mov esp, edi
mov edi, esp
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xf0]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x224], ecx
mov dword [esi + 0x220], eax
mov esp, edi
lea ecx, [esi + 0x220]
lea ebx, [esi + 0x330]
push ebx
lea eax, [esi + 0x210]
push eax
call fcn.100fa71a
mov edi, esp
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x270]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x334], ecx
mov dword [esi + 0x330], eax
mov esp, edi
mov edi, esp
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x240]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x224], ecx
mov dword [esi + 0x220], eax
mov esp, edi
lea edi, [esi + 0x330]
lea ecx, [esi + 0x220]
push edi
lea eax, [esi + 0x210]
push eax
call fcn.100fa71a
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
test byte [eax + 0xc], 6
je 0x10139cae
mov dword [esi + 8], esp
push eax
push eax
mov ecx, esp
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], esp
mov eax, 4
add eax, ecx
mov dword [esi + 0x14], eax
mov ecx, 4
sub esp, 0xc
mov dword [esi + 0x18], esp
mov dword [esi + 0x1c], esp
sub esp, 8
mov dword [esi + 0x24], esp
mov dword [esi + 0x20], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
push ecx
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 4
add eax, ebx
mov dword [esi + 0x28], eax
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x2c0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
mov dword [edi + 8], 0x6610
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x30]
mov edi, dword [esi + 0x24]
mov dword [ebx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x20]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ecx, [esi + 0x330]
call fcn.10044144
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov edi, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x1c], esp
mov ebx, dword [esi + 0x18]
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
lea ecx, [esi + 0xf0]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, dword [esi + 0x1c]
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x10]
mov ebx, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
lea ecx, [esi + 0xf0]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, ebx
lea eax, [esi + 0x220]
mov ebx, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.1003c4d0
mov ecx, dword [ebx + 4]
sub esp, 0x1c
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x220], eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 8], esp
sub esp, 8
mov ecx, esp
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], esp
mov eax, 4
add ecx, eax
mov dword [esi + 0x14], ecx
sub esp, 0xc
mov dword [esi + 0x18], esp
mov dword [esi + 0x1c], esp
sub esp, 8
mov dword [esi + 0x24], esp
mov dword [esi + 0x20], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea ecx, [ebx + 8]
mov dword [esi + 0x28], ecx
sub esp, 0xc
mov edi, esp
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 4
add eax, ebx
mov dword [esi + 0x28], eax
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x2c0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
mov dword [edi + 8], 0x6620
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x30]
mov edi, dword [esi + 0x24]
mov dword [ebx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x20]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ecx, [esi + 0x330]
call fcn.10044144
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov edi, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x1c], esp
mov ebx, dword [esi + 0x18]
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
lea ecx, [esi + 0x240]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, dword [esi + 0x1c]
call fcn.1003c4d0
sub esp, 0x18
movaps xmm0, xmmword [0x1021bcd0]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x10]
mov ebx, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
lea ecx, [esi + 0x240]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov edi, eax
mov esp, ebx
lea eax, [esi + 0x220]
mov ebx, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.1003c4d0
mov ecx, dword [ebx + 4]
sub esp, 0x1c
movdqa xmm0, xmmword [0x1021bcd0]
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
lea edi, [esi + 0x330]
mov dword [esp], ecx
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x220], eax
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10048de8
push 0
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
call fcn.1003c4da
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x258]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 0xc]
push dword [esi + 4]
mov edi, dword [esi + 8]
push edi
push dword [esi + 0x330]
call fcn.1003c6ce
add esp, 0xc
push edi
call fcn.1003c4f4
add esp, 4
mov dword [esi + 4], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x220], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], esp
lea ebx, [eax + 8]
sub esp, 0xc
mov edi, esp
mov eax, 0x98c0
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
push eax
mov edi, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x18b0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x330], eax
xor eax, eax
inc eax
mov dword [esi + 0x33c], eax
mov ecx, ebx
push dword [edi]
call fcn.10044766
mov esp, dword [esi + 0x14]
mov ecx, ebx
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [ecx], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0x220]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x220], eax
xor eax, eax
inc eax
mov dword [esi + 0x22c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x210], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], esp
lea ebx, [eax + 8]
sub esp, 0xc
mov edi, esp
mov eax, 0x98c0
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
push eax
mov edi, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x18b2
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x330], eax
xor eax, eax
inc eax
mov dword [esi + 0x33c], eax
mov ecx, ebx
push dword [edi]
call fcn.10044766
mov esp, dword [esi + 0x14]
mov ecx, ebx
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [ecx], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0x210]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x210], eax
xor eax, eax
inc eax
mov dword [esi + 0x21c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
test byte [eax + 0xc], 6
mov ebx, 0xffffffff
je 0x1013a476
mov dword [esi + 4], esp
mov dword [esi + 0x200], ebx
mov dword [esi + 0x204], ebx
mov dword [esi + 0x208], ebx
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x18118
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x50], edi
mov dword [esi + 0x4c], eax
lea ecx, [esi + 0x200]
lea eax, [esi + 0x4c]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
xor eax, eax
dec eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x1811c
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d0], eax
lea ecx, [esi + 0x4c]
lea eax, [esi + 0x1d0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
xor eax, eax
dec eax
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], eax
mov dword [esi + 0x1d8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0x10
mov edi, esp
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [edi + 0xc], eax
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x14], edi
mov dword [edi + 8], eax
mov ecx, 4
lea eax, [edi + ecx]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], esp
add eax, ecx
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
push 0xf
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
xor edi, edi
push edi
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x280]
push edi
push eax
call fcn.100447ea
mov edi, eax
call fcn.1003c4d0
sub esp, 0x18
movdqa xmm0, xmmword [0x1021bcd0]
movdqu xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x18]
mov dword [ecx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10045ffd
add esp, 0x10
mov esp, dword [esi + 8]
lea ecx, [esi + 0x1d0]
call fcn.10044a0e
mov esp, dword [esi + 4]
xor eax, eax
dec eax
mov dword [esi + 0x1cc], eax
xor ecx, ecx
mov dword [esi + 0x1c4], ecx
mov dword [esi + 0x1c8], ecx
mov byte [esi + 0x1cc], 1
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1c0], eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0x1b8]
mov ecx, edi
call fcn.10045d5c
mov esp, dword [esi + 4]
lea ecx, [esi + 0x1c4]
call fcn.10046a3c
test al, al
je 0x1013a44e
mov dword [esi + 4], esp
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
lea eax, [ebx + 8]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
push 1
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
lea edi, [esi + 0x1b8]
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x1c4]
call fcn.10046a76
mov esp, dword [esi + 4]
test al, al
je 0x1013a44e
mov dword [esi + 4], esp
push eax
push eax
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x1d0]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov dword [esi + 0x14], esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x18], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov edi, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [ebx + 4], eax
mov edi, dword [esi + 0x14]
mov dword [ebx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100ac676
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x33c]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x1ac]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003d770
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x1ac], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x1d0]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov dword [esi + 0x14], esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x18], esp
lea eax, [ebx + 8]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov edi, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x210]
call fcn.100447aa
mov dword [ebx + 4], eax
mov edi, dword [esi + 0x14]
mov dword [ebx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100ac676
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x33c]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x1ac]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003d770
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
lea edi, [esi + 0x1b8]
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x1ac], ebx
mov esp, dword [esi + 4]
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10048de8
xor eax, eax
push eax
push edi
push ebx
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x1c4]
call fcn.1003c692
add esp, 4
push dword [esi + 0x1c8]
call fcn.1003c4f4
add esp, 4
jmp 0x1013a1b6
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x1d0]
call fcn.10048de8
lea ecx, [esi + 0x4c]
call fcn.10048de8
lea ecx, [esi + 0x200]
call fcn.10048de8
xor ebx, ebx
dec ebx
xor edi, edi
push edi
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0xf0]
push edi
push eax
call fcn.100447ea
mov edi, esp
xor ecx, ecx
inc ecx
mov dword [esi + 0x334], ecx
mov dword [esi + 0x330], eax
lea ecx, [esi + 0x258]
call fcn.100447aa
lea ecx, [esi + 0xf0]
xor edx, edx
push edx
push eax
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x204], ecx
mov dword [esi + 0x200], eax
mov esp, edi
lea ecx, [esi + 0x200]
lea eax, [esi + 0x330]
push eax
lea eax, [esi + 0x4c]
push eax
call fcn.100fa71a
xor eax, eax
push eax
xor edi, edi
call fcn.1003d090
add esp, 4
lea ecx, [esi + 0x240]
push edi
push eax
call fcn.100447ea
mov dword [esi + 4], esp
xor edi, edi
inc edi
mov dword [esi + 0x334], edi
mov dword [esi + 0x330], eax
lea ecx, [esi + 0x258]
call fcn.100447aa
lea ecx, [esi + 0x240]
xor edx, edx
push edx
push eax
call fcn.100447ea
mov dword [esi + 0x204], edi
mov dword [esi + 0x200], eax
mov esp, dword [esi + 4]
lea ecx, [esi + 0x200]
lea edi, [esi + 0x330]
push edi
lea eax, [esi + 0x4c]
push eax
call fcn.100fa71a
mov dword [esi + 0x330], ebx
mov dword [esi + 0x334], ebx
mov dword [esi + 0x338], ebx
mov ecx, edi
xor eax, eax
push eax
call fcn.10045d2e
call fcn.1003c4da
mov edi, eax
mov dword [esi + 4], eax
push eax
call fcn.1003c692
add esp, 4
push edi
call fcn.1003c4f4
add esp, 4
mov dword [esi + 8], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x264]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x1b8]
mov dword [ebx], edi
lea ecx, [esi + 0x240]
xor eax, eax
push eax
push dword [ebx + 4]
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x1bc], ecx
mov dword [esi + 0x1b8], eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x200]
push edi
call fcn.10045daa
mov dword [esi + 8], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x264]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x1ac]
mov dword [ebx], edi
lea ecx, [esi + 0xf0]
xor eax, eax
push eax
push dword [ebx + 4]
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x1b0], ecx
mov dword [esi + 0x1ac], eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x4c]
push edi
call fcn.10045daa
mov dword [esi + 8], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x264]
call fcn.100447aa
mov dword [esi + 0x18], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x1a0]
mov edx, dword [esi + 0x10]
mov dword [edx], edi
lea ecx, [esi + 0x240]
xor eax, eax
push eax
push dword [edx + 4]
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x1a4], ecx
mov dword [esi + 0x1a0], eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x1d0]
push edi
call fcn.10045daa
mov dword [esi + 8], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x264]
call fcn.100447aa
mov dword [esi + 0x18], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x194]
mov edx, dword [esi + 0x10]
mov dword [edx], edi
lea ecx, [esi + 0xf0]
xor eax, eax
push eax
push dword [edx + 4]
call fcn.100447ea
xor ecx, ecx
inc ecx
mov dword [esi + 0x198], ecx
mov dword [esi + 0x194], eax
mov esp, dword [esi + 8]
lea ebx, [esi + 0x1c4]
mov ecx, ebx
push edi
call fcn.10045daa
lea eax, [esi + 0xd0]
push eax
lea edi, [esi + 0x200]
push edi
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x1d0]
push eax
push ebx
lea eax, [esi + 0x2d0]
push eax
lea eax, [esi + 0x300]
push eax
call fcn.1013ea7e
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x1d0]
call fcn.10048de8
lea ecx, [esi + 0x4c]
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
xor eax, eax
push eax
lea eax, [esi + 0x330]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
call fcn.1003c4da
mov edi, eax
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x258]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
lea eax, [esi + 0x200]
mov dword [ebx], eax
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 8]
push dword [esi + 4]
push edi
push dword [esi + 0x200]
call fcn.1003c6ce
add esp, 0xc
push edi
call fcn.1003c4f4
add esp, 4
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10048de8
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
and eax, 7
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x1013b4c4
mov dword [esi + 0x54], 0xffffffff
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov byte [esi + 0x54], 1
lea ebx, [esi + 0x4c]
mov ecx, ebx
call fcn.10046a3c
test al, al
je 0x1013ab0b
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 4], esp
mov ecx, 4
add ecx, ebx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 4]
mov dword [esi + 0x18], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x1c], eax
push eax
sub esp, 8
mov dword [esi + 4], esp
mov dword [esi + 0x20], esp
sub esp, 8
mov dword [esi + 0x30], esp
mov dword [esi + 0x24], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x28], esp
lea eax, [edi + 8]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x28]
lea ecx, [esi + 0x210]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x30]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 0x20]
mov ebx, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov edi, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x20], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
sub esp, 8
mov dword [esi + 0x30], esp
mov dword [esi + 0x24], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x28], esp
lea eax, [edi + 8]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x28]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x30]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x200]
mov ecx, edi
call fcn.100ac676
mov esp, dword [esi + 0x20]
mov ebx, dword [esi + 0x20c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
lea edi, [esi + 0x330]
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx], eax
call fcn.10044a6f
add esp, 0xc
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x4c]
call fcn.10046a76
mov ebx, eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x200]
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
test bl, bl
lea ebx, [esi + 0x4c]
je 0x1013ab0b
push 0
lea eax, [esi + 0x1f4]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x4c]
call fcn.1003c692
add esp, 4
push dword [esi + 0x50]
call fcn.1003c4f4
add esp, 4
jmp 0x1013a8c0
mov dword [esi + 0x54], 0xffffffff
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov byte [esi + 0x54], 1
mov ecx, ebx
call fcn.10046a3c
test al, al
je 0x1013adcf
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 4], esp
mov ecx, 4
add ecx, ebx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ebx
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10045f4b
add esp, 0xc
mov esp, dword [esi + 4]
mov dword [esi + 0x18], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x1c], eax
push eax
sub esp, 8
mov dword [esi + 4], esp
mov dword [esi + 0x20], esp
sub esp, 8
mov dword [esi + 0x30], esp
mov dword [esi + 0x24], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x28], eax
mov dword [esi + 0x3c], esp
add eax, 8
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x44], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x48], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x48]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x44]
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x3c]
lea ecx, [esi + 0x210]
call fcn.100447aa
mov ecx, dword [esi + 0x28]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0x30]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 0x20]
mov ebx, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov edi, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x20], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
sub esp, 8
mov dword [esi + 0x30], esp
mov dword [esi + 0x24], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x28], eax
mov dword [esi + 0x3c], esp
add eax, 8
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x44], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x48], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x48]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x44]
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x3c]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov ecx, dword [esi + 0x28]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0x30]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x200]
mov ecx, edi
call fcn.100ac676
mov esp, dword [esi + 0x20]
mov ebx, dword [esi + 0x20c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
lea edi, [esi + 0x330]
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx], eax
call fcn.10044a6f
add esp, 0xc
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x4c]
call fcn.10046a76
mov ebx, eax
mov esp, dword [esi + 8]
lea ecx, [esi + 0x200]
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
test bl, bl
je 0x1013adcf
push 0
lea eax, [esi + 0x1e8]
push eax
push edi
call fcn.1003f749
add esp, 0xc
push dword [esi + 0x4c]
call fcn.1003c692
add esp, 4
push dword [esi + 0x50]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0x4c]
jmp 0x1013ab20
mov dword [esi + 4], esp
xor eax, eax
dec eax
mov dword [esi + 0x344], eax
mov dword [esi + 0x340], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x330], xmm0
push eax
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
lea edi, [esi + 0x330]
call fcn.10044a6f
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [esi + 0x344]
cmp eax, 2
jg 0x1013ae6f
test eax, eax
jne 0x1013ae5f
mov dword [esi + 0x200], 0
lea eax, [esi + 0x200]
push eax
call fcn.1013e9a6
add esp, 4
mov eax, dword [esi + 0x344]
lea ecx, [eax + 1]
mov dword [esi + 0x344], ecx
cmp eax, 2
mov eax, ecx
jl 0x1013ae3c
mov ecx, edi
call fcn.100440c8
mov dword [esi + 4], esp
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
mov eax, 8
add eax, edi
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [esi + 4], esp
mov dword [esi + 0x50], edi
mov dword [esi + 0x4c], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x1c], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0xc]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x200]
mov ecx, ebx
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x20c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d0], eax
lea ecx, [esi + 0x1d0]
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x1c4]
push eax
call fcn.1013fda6
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
mov eax, 8
add eax, edi
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [esi + 4], esp
mov dword [esi + 0x50], edi
mov dword [esi + 0x4c], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x1c], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x210]
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0xc]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x200]
mov ecx, ebx
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x20c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d0], eax
lea ecx, [esi + 0x1d0]
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x1c4]
push eax
call fcn.1013fda6
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x1c], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0xc]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [esi + 4], esp
mov dword [esi + 0x50], edi
mov dword [esi + 0x4c], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
mov eax, 8
add eax, edi
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x200]
mov ecx, ebx
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x20c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x1d4], edi
mov dword [esi + 0x1d0], eax
lea ecx, [esi + 0x1d0]
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x1c4]
push eax
call fcn.1013fda6
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
mov edi, 4
push edi
call fcn.1003d090
add esp, 4
mov dword [esi + 0x1c], esp
mov dword [ebx + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x220]
call fcn.100447aa
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edi, dword [esi + 0xc]
mov dword [ecx], edi
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ecx, [esi + 0x330]
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x33c]
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [esi + 4], esp
mov dword [esi + 0x50], edi
mov dword [esi + 0x4c], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
lea eax, [edi + 8]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 4
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x210]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x200]
mov ecx, ebx
call fcn.100ac676
mov esp, dword [esi + 4]
mov edi, dword [esi + 0x20c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x1d4], edi
lea edi, [esi + 0x330]
mov dword [esi + 0x1d0], eax
lea ecx, [esi + 0x1d0]
lea eax, [esi + 0x4c]
push eax
lea eax, [esi + 0x1c4]
push eax
call fcn.1013fda6
mov ecx, ebx
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x210]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
lea ecx, [esi + 0xc0]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
push 0
lea eax, [esi + 0xd0]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0xe0]
call fcn.1003c692
add esp, 4
push dword [esi + 0xe4]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0xe0]
jmp 0x10139759
lea ecx, [esi + 0xd0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x1f4]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
xor eax, eax
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0xf0]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003c4d0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0xf0], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x1e8]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 4
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0xf0]
mov edi, dword [esi + 8]
mov dword [edi], eax
call fcn.1003c4d0
mov edi, dword [edi + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push ebx
push edi
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0xf0], edi
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
test byte [esi + 0x2f], 8
je 0x1013ba53
cmp dword [0x10242034], 2
jle 0x1013ba53
mov dword [esi + 8], esp
lea ecx, [esi + 0xf0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], esp
mov eax, 4
add eax, ecx
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov edi, esp
mov ebx, dword [esi + 0x40]
shl ebx, 4
mov dword [esi + 4], ebx
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
mov dword [edi + 8], ebx
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [ecx], edi
mov eax, 4
mov dword [ecx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea ecx, [esi + 0x240]
mov dword [ecx + 4], ebx
mov dword [ecx], eax
mov ebx, ecx
lea ecx, [esi + 0xf0]
lea eax, [esi + 0x240]
push eax
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor ecx, ecx
dec ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 8], ecx
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x14], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov dword [ebx], edi
mov eax, 4
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea ecx, [esi + 0x220]
mov dword [ecx + 4], ebx
mov dword [ecx], eax
mov ebx, ecx
lea ecx, [esi + 0x240]
lea eax, [esi + 0x220]
push eax
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor ecx, ecx
dec ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 8], ecx
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x14], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov dword [ebx], edi
mov eax, 4
mov dword [ebx + 8], eax
mov dword [esi + 4], 4
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea edx, [esi + 0x210]
mov dword [edx + 4], ebx
mov dword [edx], eax
lea ecx, [esi + 0x220]
push edx
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
dec eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [ebx + 8], eax
add dword [esi + 4], ebx
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x240]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
mov dword [edi], eax
call fcn.10046dc8
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10046dc8
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x330]
call fcn.10046aaa
mov esp, dword [esi + 8]
mov dword [esi + 4], esp
push eax
sub esp, 0x14
mov edi, esp
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x240]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10046d19
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100448a6
mov esp, dword [esi + 8]
lea eax, [esi + 0x2b0]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x2a0]
mov dword [edi + 0x10], eax
lea eax, [esi + 0x290]
mov dword [edi + 0x14], eax
call fcn.1013fe00
mov esp, dword [esi + 4]
push eax
sub esp, 0x14
mov edi, esp
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10046d19
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100448a6
mov esp, dword [esi + 8]
lea eax, [esi + 0x2b0]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x2a0]
mov dword [edi + 0x10], eax
lea eax, [esi + 0x290]
mov dword [edi + 0x14], eax
call fcn.1013ff6e
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
test byte [esi + 0x2f], 8
mov ebx, 0xffffffff
mov eax, dword [esi + 0x40]
je 0x1013be1f
mov dword [esi + 8], esp
lea ecx, [esi + 0xf0]
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edx, esp
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], esp
mov ecx, 4
add ecx, edx
mov dword [esi + 0x1c], ecx
mov dword [esi + 4], 4
sub esp, 0xc
mov edi, esp
shl eax, 4
mov ebx, eax
mov dword [esi + 0x40], eax
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
mov dword [edi + 8], ebx
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [ecx], edi
mov eax, 0xc
mov dword [ecx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea ecx, [esi + 0x240]
mov dword [ecx + 4], ebx
mov dword [ecx], eax
mov ebx, ecx
lea ecx, [esi + 0xf0]
lea eax, [esi + 0x240]
push eax
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
dec eax
mov dword [ebx], eax
xor eax, eax
dec eax
mov dword [ebx + 4], eax
xor eax, eax
dec eax
mov dword [ebx + 8], eax
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x14], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov dword [ebx], edi
mov eax, 0xc
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea ecx, [esi + 0x220]
mov dword [ecx + 4], ebx
mov dword [ecx], eax
mov ebx, ecx
lea ecx, [esi + 0x240]
lea eax, [esi + 0x220]
push eax
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
dec eax
mov dword [ebx], eax
xor eax, eax
dec eax
mov dword [ebx + 4], eax
xor eax, eax
dec eax
mov dword [ebx + 8], eax
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x14], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov dword [ebx], edi
mov eax, 0xc
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044088
mov esp, dword [esi + 8]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea edx, [esi + 0x210]
mov dword [edx + 4], ebx
mov dword [edx], eax
lea ebx, [esi + 0x220]
mov ecx, ebx
push edx
call fcn.10046af8
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
xor eax, eax
dec eax
mov dword [edi], eax
xor eax, eax
dec eax
mov dword [edi + 4], eax
xor eax, eax
dec eax
mov dword [edi + 8], eax
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [edi + 8], eax
add dword [esi + 4], edi
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x240]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
mov dword [ebx], eax
call fcn.10046d8c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10046d8c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x330]
call fcn.10046aaa
mov esp, dword [esi + 8]
mov dword [esi + 4], esp
push eax
sub esp, 0x14
mov edi, esp
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x240]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.10046d19
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100448a6
mov esp, dword [esi + 8]
lea eax, [esi + 0x2b0]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x2a0]
mov dword [edi + 0x10], eax
lea eax, [esi + 0x290]
mov dword [edi + 0x14], eax
call fcn.1013fe00
mov esp, dword [esi + 4]
push eax
sub esp, 0x14
mov edi, esp
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ebx], eax
xor ebx, ebx
dec ebx
call fcn.10046d19
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100448a6
mov esp, dword [esi + 8]
lea eax, [esi + 0x2b0]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x2a0]
mov dword [edi + 0x10], eax
lea eax, [esi + 0x290]
mov dword [edi + 0x14], eax
call fcn.1013ff6e
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
jmp 0x1013be25
shl eax, 4
mov dword [esi + 0x40], eax
mov dword [esi + 4], esp
lea eax, [esi + 0x1d0]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
lea eax, [edi + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0xc]
mov dword [edi], ebx
mov eax, 0xc
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x1d0]
lea eax, [esi + 0xf0]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x1c4]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
mov dword [ebx], edi
mov eax, 0xc
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x1c4]
lea eax, [esi + 0xf0]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x1b8]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
mov dword [ebx], edi
mov eax, 0xc
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x1b8]
lea eax, [esi + 0xf0]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x240], xmm0
lea edi, [esi + 0x240]
mov ecx, edi
call fcn.10047338
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x1d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov ecx, 0xc
or ecx, edi
lea eax, [esi + 0x330]
mov dword [ebx], eax
mov edi, ecx
call fcn.10041594
mov esp, dword [esi + 4]
push eax
push eax
mov ebx, esp
lea ecx, [esi + 0x1c4]
call fcn.100447aa
mov dword [ebx + 4], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
mov ecx, edi
call fcn.10041666
mov esp, dword [esi + 4]
push eax
push eax
mov ebx, esp
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [ebx + 4], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
mov ecx, edi
call fcn.10041738
mov esp, dword [esi + 4]
mov ecx, edi
push 0x3f800000
lea eax, [esi + 0x330]
push eax
call fcn.100ac37e
mov dword [esi + 4], esp
lea ecx, [esi + 0x1ac]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x22c
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x1ac]
lea eax, [esi + 0xf0]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x1a0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x220
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x1a0]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x194]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 0x220
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 4]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x194]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x188]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 0x220
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 4]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x188]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x17c]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x224
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x17c]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x170]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov edi, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 0x224
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 4]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x170]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x164]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x224
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0x164]
lea eax, [esi + 0xf0]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
test byte [esi + 0x2f], 2
je 0x1013c5b0
mov dword [esi + 4], esp
sub esp, 8
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x17c]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x194]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0x330]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x188]
call fcn.100448c8
mov esp, dword [esi + 4]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x194]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1a0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10044d59
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0x330]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x164]
call fcn.100448c8
mov esp, dword [esi + 4]
mov dword [esi + 4], esp
lea ecx, [esi + 0x158]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x1a0]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x158]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x14c]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x17c]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x14c]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1a0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
lea eax, [esi + 0x194]
mov dword [ebx + 4], eax
call fcn.10045ec0
add esp, 0xc
mov esp, edi
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x17c]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
lea eax, [esi + 0x170]
mov dword [ebx + 4], eax
call fcn.10045ec0
add esp, 0xc
mov esp, edi
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x1a0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
lea eax, [esi + 0x188]
mov dword [ebx + 4], eax
call fcn.10045ec0
add esp, 0xc
mov esp, edi
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x17c]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x330]
mov dword [ebx], eax
lea eax, [esi + 0x164]
mov dword [ebx + 4], eax
call fcn.10045ec0
add esp, 0xc
mov esp, edi
mov dword [esi + 4], esp
lea eax, [esi + 0x140]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
lea ecx, [esi + 0x194]
call fcn.100447aa
mov dword [ebx], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [edi + 8], eax
mov eax, 4
add eax, edi
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1c4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x140]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x134]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx], eax
lea ebx, [esi + 0x330]
mov ecx, ebx
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [edi + 8], eax
mov eax, 4
add eax, edi
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1c4]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x134]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x128]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
push eax
mov edi, esp
lea ecx, [esi + 0x188]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
mov eax, 4
add eax, ebx
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x128]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x11c]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
push eax
mov edi, esp
lea ecx, [esi + 0x164]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
mov eax, 4
add eax, ebx
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x11c]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 8], esp
lea ecx, [esi + 0x110]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 4], eax
mov dword [esi + 0x14], esp
mov ebx, 8
add ebx, eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x128]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x14]
mov ebx, 4
add ebx, dword [esi + 4]
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x11c]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x110]
call fcn.10046aaa
mov esp, dword [esi + 8]
mov dword [esi + 4], esp
lea eax, [esi + 0x220]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea edi, [esi + 0x330]
mov ecx, edi
lea eax, [esi + 0x158]
push eax
call fcn.1004747c
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 8], eax
sub esp, 0x10
movdqa xmm0, xmmword [0x1021bd00]
movdqu xmmword [esp], xmm0
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100473ae
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x220]
call fcn.100473e2
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x210]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ebx, [esi + 0x330]
mov ecx, ebx
lea eax, [esi + 0x14c]
push eax
call fcn.1004747c
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 8], eax
sub esp, 0x10
movdqa xmm0, xmmword [0x1021bd10]
movdqu xmmword [esp], xmm0
lea ebx, [esi + 0xf0]
mov ecx, ebx
call fcn.100473ae
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x210]
call fcn.100473e2
mov esp, dword [esi + 4]
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x220]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 0x10
mov dword [ebx + 8], eax
mov ebx, 0x10
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [edi + 4], ebx
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], eax
lea eax, [esi + 0xf0]
mov edi, dword [esi + 8]
mov dword [edi], eax
call fcn.100411a0
mov edi, dword [edi + 4]
xor ebx, ebx
push ebx
push ebx
push dword [esi + 0xc]
push ebx
push eax
push dword [esi + 0x10]
push edi
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0xf0]
mov dword [eax], edi
mov esp, dword [esi + 4]
lea ecx, [esi + 0x330]
call fcn.10048de8
mov dword [esi + 8], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0xc], edi
lea ecx, [esi + 0x210]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [edi + 4], eax
sub esp, 8
mov dword [esi + 4], esp
mov dword [esi + 0x14], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 8], 0x20
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, 0x10
mov ecx, dword [esi + 4]
mov dword [ecx + 4], eax
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.100c4368
mov esp, dword [esi + 0x10]
mov eax, dword [edi + 0xc]
mov dword [esi + 4], eax
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], eax
lea eax, [esi + 0xf0]
mov edi, dword [esi + 0xc]
mov dword [edi], eax
call fcn.100411a0
mov edi, dword [edi + 4]
push ebx
push ebx
push dword [esi + 4]
push ebx
push eax
push dword [esi + 0x10]
push edi
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0xf0]
mov dword [eax], edi
mov esp, dword [esi + 8]
lea edi, [esi + 0x330]
mov ecx, edi
call fcn.10048de8
pcmpeqd xmm0, xmm0
movdqa xmmword [edi + 0x20], xmm0
movdqa xmmword [edi + 0x10], xmm0
movdqa xmmword [edi], xmm0
lea ecx, [esi + ebx]
add ecx, 0x330
call fcn.10047338
add ebx, 0x10
cmp ebx, 0x30
jne 0x1013cda8
sub esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp], xmm0
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100473ae
lea ebx, [esi + 0x200]
lea ecx, [esi + 0x330]
push edi
push ebx
call fcn.100448e4
mov ecx, edi
call fcn.10048de8
sub esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp], xmm0
mov ecx, edi
call fcn.100473ae
lea ecx, [esi + 0x340]
push edi
push ebx
call fcn.100448e4
mov ecx, edi
call fcn.10048de8
sub esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp], xmm0
mov ecx, edi
call fcn.100473ae
lea ecx, [esi + 0x350]
push edi
push ebx
call fcn.100448e4
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x1ac]
call fcn.100447aa
mov dword [ebx + 4], eax
lea ecx, [esi + 0x33c]
mov dword [ebx], edi
call fcn.10041738
mov esp, dword [esi + 4]
lea ecx, [esi + 0xf0]
xor eax, eax
dec eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
push eax
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
push 0
call fcn.1003d732
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x110]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10046cfc
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.10044048
mov esp, dword [esi + 4]
mov eax, dword [edi + 0x14]
cmp eax, 2
jg 0x1013d319
test eax, eax
jne 0x1013d305
mov dword [esi + 4], esp
xor ebx, ebx
dec ebx
mov dword [esi + 0x200], ebx
mov dword [esi + 0x204], ebx
mov dword [esi + 0x208], ebx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x110]
call fcn.100447aa
mov dword [edi + 8], eax
push 0x3f800000
call fcn.1003d732
add esp, 4
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046bac
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x200]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xe8], ebx
push eax
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1ac]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0xe0]
mov ecx, edi
call fcn.10046aaa
mov esp, dword [esi + 4]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov ebx, esp
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], ebx
mov dword [ebx + 8], eax
lea eax, [ebx + 4]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x20], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x24], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1c4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x11c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
lea eax, [ebx + 4]
mov dword [esi + 0x24], eax
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xd0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x33c]
call fcn.10041594
mov esp, dword [esi + 4]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], edi
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x20], esp
mov eax, 8
add eax, ebx
mov dword [esi + 0x24], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1b8]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
lea eax, [ebx + 4]
mov dword [esi + 0x24], eax
push eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0x1c4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x128]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xd0]
mov eax, dword [esi + 8]
mov dword [eax], ecx
lea ecx, [esi + 0x33c]
call fcn.10041666
mov esp, dword [esi + 4]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0xc], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x11c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0xd0]
mov dword [ebx], eax
lea ecx, [esi + 0x34c]
call fcn.10041594
mov esp, dword [esi + 4]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x128]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046c6e
add esp, 8
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xd0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x34c]
call fcn.10041666
mov esp, dword [esi + 4]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x10], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [esi + 0x14], esp
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
call fcn.10046c6e
add esp, 8
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0xd0]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
lea ecx, [esi + 0x35c]
call fcn.10041594
mov esp, dword [esi + 4]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0xc], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0xd0]
mov dword [ebx], eax
lea ecx, [esi + 0x35c]
call fcn.10041666
mov esp, dword [esi + 4]
lea ecx, [esi + 0xe0]
call fcn.10048de8
lea ecx, [esi + 0x200]
call fcn.10048de8
mov eax, dword [esi + 0x104]
lea ecx, [eax + 1]
mov dword [esi + 0x104], ecx
cmp eax, 2
mov eax, ecx
jl 0x1013cecb
lea ecx, [esi + 0xf0]
call fcn.100440c8
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 4]
mov al, byte [eax]
test al, 0x20
je 0x1013d620
mov dword [esi + 4], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xf0], xmm0
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x350]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x340]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x330]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0xf0]
mov ecx, edi
call fcn.100473e2
mov esp, dword [esi + 4]
mov ebx, 0xc
or ebx, edi
lea edi, [esi + 0x200]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov ecx, edi
push ebx
call fcn.101314da
lea ecx, [esi + 0xe0]
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
push ebx
call fcn.10131534
lea ecx, [esi + 0xd0]
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
push ebx
call fcn.1013158e
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], ebx
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [ebx + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x60
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, 0x10
mov dword [edi + 4], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
lea eax, [esi + 0x4c]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0x4c]
mov dword [eax], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xc0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0xe0]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x70
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, 0x10
mov dword [edi + 4], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
lea eax, [esi + 0x4c]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0x4c]
mov dword [eax], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xc0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x80
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, 0x10
mov dword [edi + 4], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
lea eax, [esi + 0x4c]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0x4c]
mov dword [eax], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xc0]
call fcn.10048de8
lea ecx, [esi + 0xd0]
call fcn.10048de8
lea ecx, [esi + 0xe0]
call fcn.10048de8
lea ecx, [esi + 0x200]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 4]
mov al, byte [eax]
test al, 0x10
je 0x1013e43c
mov dword [esi + 4], esp
lea ecx, [esi + 0xb4]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2b0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x228
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0xf0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x200]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0xb4]
lea eax, [esi + 0x200]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0xa8]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2a0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x228
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0xf0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x200]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0xa8]
lea eax, [esi + 0x200]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x9c]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x290]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 0x228
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 8]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0xf0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0x200]
mov dword [ecx + 4], edi
mov dword [ecx], eax
lea ecx, [esi + 0x9c]
lea eax, [esi + 0x200]
push eax
call fcn.10046af8
mov ecx, ebx
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0xf0]
mov dword [ebx], eax
lea eax, [esi + 0xa8]
mov dword [ebx + 4], eax
call fcn.10046c00
add esp, 0xc
mov esp, edi
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0xf0]
mov dword [ebx], eax
lea eax, [esi + 0x9c]
mov dword [ebx + 4], eax
call fcn.10046c00
add esp, 0xc
mov esp, edi
pcmpeqd xmm0, xmm0
lea eax, [esi + 0xf0]
movdqa xmmword [eax], xmm0
lea ecx, [esi + 0xf0]
call fcn.10047338
lea ecx, [esi + 0x200]
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.10047338
lea ecx, [esi + 0xe0]
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.10047338
test byte [esi + 0x2f], 1
jne 0x1013ddea
mov dword [esi + 4], esp
lea ecx, [esi + 0xc0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x194]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0xc0]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x4c]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x4c]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x90]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x188]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x90]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 4], esp
lea eax, [esi + 0x84]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov eax, 0x3d800000
push eax
call fcn.1003d732
add esp, 4
mov dword [esi + 0x10], esp
mov dword [ebx + 8], eax
push eax
mov edi, esp
lea ecx, [esi + 0x164]
call fcn.100447aa
mov dword [edi], eax
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.10046816
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x84]
call fcn.10046aaa
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 8], esp
lea ecx, [esi + 0x78]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], esp
add eax, 8
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 4], eax
mov edi, esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, edi
mov dword [esi + 0x20], esp
mov edi, 4
add edi, dword [esi + 4]
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x18]
mov dword [esi + 4], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x18038
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
mov dword [ebx + 4], 1
lea ebx, [esi + 0xd0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 4]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 4], eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push dword [esi + 4]
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10046bac
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x78]
mov ecx, edi
call fcn.10046aaa
mov esp, dword [esi + 8]
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
lea ecx, [esi + 0x6c]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov ebx, esp
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x14], ebx
mov dword [ebx + 8], eax
lea eax, [ebx + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 8]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea eax, [edi + 4]
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0x6c]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea eax, [esi + 0x60]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x78]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x14], edi
mov dword [edi + 8], eax
lea eax, [edi + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 8]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea eax, [edi + 4]
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10046b72
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 8]
lea edi, [esi + 0x60]
mov ecx, edi
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ebx, [esi + 0xd0]
mov ecx, ebx
lea eax, [esi + 0x6c]
push eax
call fcn.1004747c
lea eax, [esi + 0x5c]
lea ecx, [esi + 0xf0]
push ebx
push eax
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
mov ecx, ebx
push edi
call fcn.1004747c
lea ecx, [esi + 0x200]
push ebx
lea eax, [esi + 0x5c]
push eax
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x6c]
call fcn.10048de8
lea ecx, [esi + 0x78]
call fcn.10048de8
lea ecx, [esi + 0x84]
call fcn.10048de8
lea ecx, [esi + 0x90]
call fcn.10048de8
lea ecx, [esi + 0x4c]
call fcn.10048de8
lea ecx, [esi + 0xc0]
jmp 0x1013de3f
sub esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp], xmm0
lea ebx, [esi + 0xd0]
mov ecx, ebx
call fcn.100473ae
lea edi, [esi + 0xc0]
lea ecx, [esi + 0xf0]
push ebx
push edi
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
sub esp, 0x10
pxor xmm0, xmm0
movdqu xmmword [esp], xmm0
mov ecx, ebx
call fcn.100473ae
lea ecx, [esi + 0x200]
push ebx
push edi
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x30
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, 0x10
mov dword [ebx + 4], eax
lea ebx, [esi + 0xd0]
mov ecx, ebx
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
lea eax, [esi + 0xc0]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0xc0]
mov dword [eax], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xd0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
lea ecx, [esi + 0x200]
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x40
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov eax, 0x10
mov dword [ebx + 4], eax
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], eax
lea eax, [esi + 0xc0]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push dword [esi + 0x10]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0xc0]
mov dword [eax], ebx
mov esp, dword [esi + 4]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x90]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
lea eax, [esi + 0xb4]
push eax
call fcn.10046acc
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 4]
test byte [eax], 4
je 0x1013e1d9
test byte [eax + 8], 2
je 0x1013e1d9
mov dword [esi + 4], esp
xor eax, eax
dec eax
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], eax
push eax
mov dword [esi + 0xc], esp
mov dword [esi + 8], esp
mov ecx, 0xc
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], esp
mov edi, 8
add edi, eax
sub esp, 8
mov ebx, esp
lea eax, [esi + 0x200]
or eax, ecx
lea ecx, [esi + 0xd0]
push eax
call fcn.1004153c
lea ecx, [esi + 0xd0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
call fcn.10046d36
add esp, 8
mov esp, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
lea eax, [ebx + 4]
mov dword [esi + 0x18], eax
push eax
push eax
mov edi, esp
lea eax, [esi + 0xf0]
mov ecx, 0xc
or eax, ecx
lea ecx, [esi + 0x4c]
push eax
call fcn.1004153c
lea ecx, [esi + 0x4c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10046d36
add esp, 8
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0xc]
mov dword [ebx], eax
call fcn.10046d8c
add esp, 0xc
mov esp, dword [esi + 8]
lea ecx, [esi + 0xc0]
call fcn.10046aaa
mov esp, dword [esi + 4]
lea ecx, [esi + 0x4c]
call fcn.10048de8
lea ecx, [esi + 0xd0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 0xc
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x18034
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [edi + 4], 1
lea ebx, [esi + 0xd0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
call fcn.1003cd7a
add esp, 0x18
mov ecx, dword [esi + 8]
mov dword [ecx + 8], eax
lea eax, [esi + 0x4c]
mov dword [ecx], eax
lea eax, [esi + 0xc0]
mov dword [ecx + 4], eax
call fcn.10046c37
add esp, 0xc
mov esp, dword [esi + 4]
mov ecx, ebx
call fcn.10048de8
cmp byte [0x102478bd], 0
je 0x1013e19d
mov dword [esi + 4], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0xc], eax
sub esp, 8
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi], eax
call fcn.10046c6e
add esp, 8
mov esp, dword [esi + 8]
lea eax, [esi + 0xd0]
mov dword [ebx], eax
lea ecx, [esi + 0xc0]
call fcn.100448c8
mov esp, dword [esi + 4]
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0xd0]
mov dword [ebx], eax
lea eax, [esi + 0x90]
mov dword [ebx + 4], eax
call fcn.10046bc9
add esp, 0xc
mov esp, edi
lea ecx, [esi + 0xc0]
call fcn.10048de8
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 4], esp
mov dword [esi + 0x14], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x1803c
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 0x14]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov dword [esi + 0x14], esp
mov ecx, dword [esi + 4]
mov dword [ecx + 8], eax
lea eax, [ecx + 4]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov dword [esi + 0x1c], esp
mov dword [esi + 0x20], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x24], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x2d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x18038
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x4c]
mov ecx, ebx
call fcn.10044088
mov esp, dword [esi + 0x20]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.10041180
xor ecx, ecx
push ecx
push ecx
push edi
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov edi, dword [esi + 0x1c]
mov dword [edi + 8], eax
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10046b8f
add esp, 0xc
mov esp, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
call fcn.100469e6
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0xd0]
mov ecx, edi
call fcn.10040a70
mov esp, dword [esi + 8]
lea eax, [esi + 0x84]
lea ebx, [esi + 0xe0]
mov ecx, ebx
push edi
push eax
call fcn.100448e4
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x4c]
call fcn.10048de8
lea ecx, [esi + 0xc0]
call fcn.10048de8
mov dword [esi + 4], esp
sub esp, 8
mov edi, esp
mov dword [esi + 8], edi
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], esp
mov dword [edi + 4], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x10], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x300]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 0x50
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [edi + 4], 0x10
lea ebx, [esi + 0xd0]
mov ecx, ebx
call fcn.100c4368
mov esp, dword [esi + 0xc]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xc], eax
lea eax, [esi + 0xc0]
mov ebx, dword [esi + 8]
mov dword [ebx], eax
call fcn.100411a0
mov ebx, dword [ebx + 4]
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push edi
push ecx
push eax
push dword [esi + 0xc]
push ebx
call fcn.1003cf56
add esp, 0x1c
lea eax, [esi + 0xc0]
mov dword [eax], ebx
mov esp, dword [esi + 4]
lea ecx, [esi + 0xd0]
call fcn.10048de8
lea ecx, [esi + 0x90]
call fcn.10048de8
lea ecx, [esi + 0xe0]
call fcn.10048de8
lea ecx, [esi + 0x200]
call fcn.10048de8
lea ecx, [esi + 0xf0]
call fcn.10048de8
lea ecx, [esi + 0x9c]
call fcn.10048de8
lea ecx, [esi + 0xa8]
call fcn.10048de8
lea ecx, [esi + 0xb4]
call fcn.10048de8
mov ecx, dword [esi + 0x34]
xor eax, eax
mov dword [esi + 8], 0x11
mov edi, 0x90
mov dword [esi + 0x18], eax
mov dword [esi + 4], 0
mov dword [esi + 0x1c], edi
xor ebx, ebx
mov edx, dword [ecx + 4]
mov eax, dword [esi + 8]
add eax, edx
movzx ecx, byte [ebx + eax]
mov eax, ecx
and eax, 0x3f
cmp al, 0x22
je 0x1013e4e5
mov dl, byte [edx]
mov dh, cl
and dh, 0x40
shr dh, 6
and dl, 0x40
shr dl, 6
shl eax, 4
add eax, dword [esi + 4]
shr cl, 7
movzx ecx, cl
mov dword [esi + 0xc], ecx
mov cl, byte [esi + 0x2f]
shr cl, 7
movzx ecx, cl
mov dword [esi + 0x14], ecx
movzx ecx, dh
mov dword [esi + 0x10], ecx
movzx edx, dl
push ebx
push dword [esi + 0xc]
push edx
push dword [esi + 0x14]
push dword [esi + 0x10]
push edi
push eax
lea eax, [esi + 0x290]
push eax
lea eax, [esi + 0x2a0]
push eax
lea eax, [esi + 0x2b0]
push eax
lea eax, [esi + 0x330]
push eax
lea eax, [esi + 0x240]
push eax
lea eax, [esi + 0x2f0]
push eax
lea eax, [esi + 0x300]
push eax
call fcn.101400dc
inc ebx
add edi, 0x30
add dword [esi + 4], 4
cmp ebx, 4
mov ecx, dword [esi + 0x34]
jne 0x1013e459
mov eax, dword [esi + 0x18]
inc eax
add dword [esi + 8], 4
mov edi, dword [esi + 0x1c]
add edi, 0xc0
cmp eax, 0x20
jne 0x1013e44a
mov ecx, dword [ecx + 4]
mov al, byte [ecx + 0x39]
mov edx, eax
and dl, 0x3f
cmp dl, 0xb
jne 0x1013e57d
mov cl, byte [ecx]
and cl, 0x40
shr cl, 6
and al, 0x40
shr al, 6
xor edx, edx
movzx eax, al
movzx ecx, cl
push edx
push edx
push ecx
push edx
push eax
push 0x810
push 0xb0
lea eax, [esi + 0x290]
push eax
lea eax, [esi + 0x2a0]
push eax
lea eax, [esi + 0x2b0]
push eax
lea eax, [esi + 0x330]
push eax
lea eax, [esi + 0x240]
push eax
lea eax, [esi + 0x2f0]
push eax
lea eax, [esi + 0x300]
push eax
call fcn.101400dc
mov dword [esi + 0xf0], 1
lea eax, [esi + 0xf0]
push eax
call fcn.1013e9a6
add esp, 4
mov edi, 0x20
xor ebx, ebx
dec ebx
lea ecx, [esi + edi]
add ecx, 0x330
call fcn.10048de8
add edi, 0xfffffff0
cmp edi, 0xfffffff0
jne 0x1013e59e
lea ecx, [esi + 0x210]
call fcn.10048de8
lea ecx, [esi + 0x220]
call fcn.10048de8
lea ecx, [esi + 0x110]
call fcn.10048de8
lea ecx, [esi + 0x11c]
call fcn.10048de8
lea ecx, [esi + 0x128]
call fcn.10048de8
lea ecx, [esi + 0x134]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x14c]
call fcn.10048de8
lea ecx, [esi + 0x158]
call fcn.10048de8
lea ecx, [esi + 0x164]
call fcn.10048de8
lea ecx, [esi + 0x170]
call fcn.10048de8
lea ecx, [esi + 0x17c]
call fcn.10048de8
lea ecx, [esi + 0x188]
call fcn.10048de8
lea ecx, [esi + 0x194]
call fcn.10048de8
lea ecx, [esi + 0x1a0]
call fcn.10048de8
lea ecx, [esi + 0x1ac]
call fcn.10048de8
lea ecx, [esi + 0x240]
call fcn.10048de8
lea ecx, [esi + 0x1b8]
call fcn.10048de8
lea ecx, [esi + 0x1c4]
call fcn.10048de8
lea ecx, [esi + 0x1d0]
call fcn.10048de8
lea ecx, [esi + 0x1dc]
call fcn.10048de8
lea ecx, [esi + 0x1e8]
call fcn.10048de8
lea ecx, [esi + 0x1f4]
call fcn.10048de8
lea ecx, [esi + 0x234]
call fcn.10048de8
lea ecx, [esi + 0x258]
call fcn.10048de8
lea ecx, [esi + 0x264]
call fcn.10048de8
lea ecx, [esi + 0x270]
call fcn.10048de8
lea ecx, [esi + 0x280]
call fcn.10048de8
lea ecx, [esi + 0x290]
call fcn.10048de8
lea ecx, [esi + 0x2a0]
call fcn.10048de8
lea ecx, [esi + 0x2b0]
call fcn.10048de8
lea ecx, [esi + 0x2c0]
call fcn.10048de8
lea ecx, [esi + 0x2d0]
call fcn.10048de8
lea ecx, [esi + 0x2e0]
call fcn.10048de8
lea ecx, [esi + 0x2f0]
call fcn.10048de8
lea ecx, [esi + 0x300]
call fcn.10048de8
push str.SetupRoutine
lea eax, [esi + 0x330]
push eax
lea eax, [esi + 0x310]
push eax
call fcn.100b9956
add esp, 0xc
mov eax, dword [esi + 0x330]
mov ecx, dword [esi + 0x334]
xor edx, edx
mov dword [esi + 0x330], edx
mov dword [esi + 0x334], edx
mov edx, dword [esi + 0x34]
mov dword [edx + 8], eax
mov edi, dword [edx + 0xc]
mov dword [edx + 0xc], ecx
test edi, edi
je 0x1013e79e
mov eax, ebx
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x1013e79e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, edi
call fcn.101abfcc
mov edi, dword [esi + 0x334]
test edi, edi
je 0x1013e7bf
lock xadd dword [edi + 4], ebx
test ebx, ebx
jne 0x1013e7bf
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, edi
call fcn.101abfcc
mov dword [esi + 0x310], 0x10219294
mov ecx, dword [esi + 0x314]
test ecx, ecx
je 0x1013e7d9
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x318]
test eax, eax
je 0x1013e7f2
mov dword [esi + 0x31c], eax
push eax
call fcn.101d75d9
add esp, 4
mov ecx, dword [esi + 0x368]
xor ecx, ebp
call fcn.101d7611
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret