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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x210
mov esi, esp
mov edi, dword [ebp + 0xc]
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [esi + 0x208], eax
mov eax, dword [edi]
mov dword [esi + 0x6c], eax
mov eax, dword [edi + 4]
mov dword [esi + 0x8c], eax
push dword [edi + 8]
call fcn.100cfa0e
add esp, 4
mov dword [esi + 0x68], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x90], eax
push dword [edi + 0xc]
call fcn.100cfa0e
add esp, 4
mov dword [esi + 0x64], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x7c], eax
xor eax, eax
dec eax
lea ecx, [esi + 0x1f0]
mov dword [ecx + 0x10], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.1018aa1a
lea edi, [esi + 0x1e0]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
xor eax, eax
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 edi, [esi + 0x1d0]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
xor eax, eax
inc eax
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 edi, [esi + 0x1c0]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
push 2
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 edi, [esi + 0x1b4]
xor eax, eax
dec eax
mov dword [edi + 8], eax
xor ecx, ecx
mov dword [edi], ecx
mov dword [edi + 4], ecx
xor edx, edx
mov byte [edi + 8], 1
lea ecx, [esi + 0x1a8]
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
je 0x1018a04f
mov edx, dword [esi + 0x64]
mov eax, edx
add eax, edx
mov dword [esi + 0x84], eax
mov ecx, dword [esi + 0x68]
mov eax, ecx
add eax, ecx
mov dword [esi + 0x80], eax
test byte [esi + 0x7c], 0xf
mov edi, 0x10
mov eax, 1
cmove eax, edi
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x6c]
lea edi, [eax - 3]
mov dword [esi + 0x44], edi
lea edx, [edx*4]
mov dword [esi + 0x50], edx
lea ecx, [ecx*4]
mov dword [esi + 0x40], ecx
dec eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x8c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x1b4]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x1018a04f
mov dword [esi + 0x10], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xc0], xmm0
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x18], esp
lea eax, [edi + 8]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
push dword [esi + 0x90]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x1e0]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x14]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0xc0]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0xc0], eax
xor eax, eax
inc eax
mov dword [esi + 0xcc], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xa0], xmm0
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x18], esp
lea eax, [edi + 8]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
push dword [esi + 0x7c]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x1d0]
call fcn.100447aa
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x14]
mov dword [edi], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0xa0]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0xa0], eax
xor eax, eax
inc eax
mov dword [esi + 0xac], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
xor eax, eax
dec eax
mov dword [esi + 0x19c], eax
mov dword [esi + 0x1a0], eax
mov dword [esi + 0x1a4], eax
lea ecx, [esi + 0x19c]
push 0
call fcn.10045d2e
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
add eax, 0xfffffff1
cmp eax, 0xe
ja case.0x101855f8.17
jmp dword [eax*4 + 0x1021dc90]
xor eax, eax
dec eax
mov dword [esi + 0x134], eax
mov dword [esi + 0x138], eax
mov dword [esi + 0x13c], eax
lea ecx, [esi + 0x134]
lea eax, [esi + 0x19c]
push eax
call fcn.10045d7e
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x10185b61
lea ecx, [eax - 0x12]
cmp ecx, 2
jae 0x10187a75
mov dword [esi + 0x12c], 0xffffffff
xor eax, eax
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], eax
mov byte [esi + 0x12c], 1
lea ecx, [esi + 0x124]
call fcn.10046a3c
test al, al
je 0x101883b2
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x124]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x101883b2
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x180], xmm0
lea ebx, [esi + 0x170]
mov ecx, ebx
push dword [esi + 0x54]
lea eax, [esi + 0xa0]
push eax
call fcn.100ac5e8
mov edi, dword [esi + 0x17c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x164], edi
mov dword [esi + 0x160], eax
lea ecx, [esi + 0x180]
lea eax, [esi + 0x160]
push eax
call fcn.10046680
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 0xc], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], esp
add eax, 4
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
lea ecx, [ebx + 8]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x2c], ebx
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x170]
push 0xff00ff00
call fcn.10046554
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [esi + 0x34], esp
lea eax, [ebx + 4]
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x160]
push 0xff
call fcn.10046554
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [edi], eax
mov al, 0x10
mov byte [edi + 8], al
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x150]
push 0xff0000
call fcn.10046554
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
mov al, 0x10
mov byte [ebx + 8], al
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x18]
lea edi, [esi + 0x140]
mov ecx, edi
push 1
lea eax, [esi + 0xc0]
push eax
call fcn.100ac5e8
mov eax, dword [esi + 0x14c]
mov dword [esi + 0x10], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x114]
mov ebx, dword [esi + 0x14]
mov dword [ebx], eax
call fcn.1003fa60
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0x10]
push ecx
push eax
push edi
push dword [ebx + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x114], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x180]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0x134]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
push dword [esi + 0x124]
call fcn.1003c692
add esp, 4
push dword [esi + 0x128]
call fcn.1003c4f4
add esp, 4
jmp 0x1018565d
xor eax, eax
dec eax
mov dword [esi + 0xe8], eax
mov dword [esi + 0xec], eax
mov dword [esi + 0xf0], eax
lea ecx, [esi + 0xe8]
lea eax, [esi + 0x19c]
push eax
call fcn.10045d7e
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x10187621
lea ecx, [eax - 0x12]
cmp ecx, 2
jae 0x10189105
mov dword [esi + 0x168], 0xffffffff
xor eax, eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov byte [esi + 0x168], 1
lea edi, [esi + 0x160]
mov ecx, edi
call fcn.10046a3c
test al, al
je 0x1018962a
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xe8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
lea edi, [esi + 0x160]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x1018962a
lea ebx, [esi + 0x180]
mov ecx, ebx
push dword [esi + 0x54]
lea eax, [esi + 0xa0]
push eax
call fcn.100ac5e8
mov edi, dword [esi + 0x18c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
push 1
lea ebx, [esi + 0xc0]
push ebx
call fcn.100ac5e8
mov edi, dword [esi + 0x17c]
lea ebx, [esi + 0x170]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x144], edi
mov dword [esi + 0x140], eax
lea ecx, [esi + 0x140]
lea eax, [esi + 0x150]
push eax
lea eax, [esi + 0x124]
push eax
call fcn.101846d8
mov ecx, ebx
call fcn.10048de8
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0xe8]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
lea edi, [esi + 0x160]
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
jmp 0x101859f7
cmp eax, 0x17
lea edi, [esi + 0x160]
je 0x10185b7e
cmp eax, 0x2d
je 0x10188031
cmp eax, 0x1b
jne 0x101883b8
mov dword [esi + 0x168], 0xffffffff
xor eax, eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov byte [esi + 0x168], 1
mov ecx, edi
call fcn.10046a3c
test al, al
je 0x101883b8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
lea edi, [esi + 0x160]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x101883b8
lea ebx, [esi + 0x180]
mov ecx, ebx
push dword [esi + 0x54]
lea eax, [esi + 0xa0]
push eax
call fcn.100ac5e8
mov edi, dword [esi + 0x18c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
push 1
lea ebx, [esi + 0xc0]
push ebx
call fcn.100ac5e8
mov edi, dword [esi + 0x17c]
lea ebx, [esi + 0x170]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x144], edi
mov dword [esi + 0x140], eax
lea ecx, [esi + 0x140]
lea eax, [esi + 0x150]
push eax
lea eax, [esi + 0x124]
push eax
call fcn.101846d8
mov ecx, ebx
call fcn.10048de8
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0x134]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
lea edi, [esi + 0x160]
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
jmp 0x10185b9d
xor eax, eax
dec eax
mov dword [esi + 0x168], eax
xor ecx, ecx
mov dword [esi + 0x160], ecx
mov dword [esi + 0x164], ecx
mov byte [esi + 0x168], 1
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], eax
mov dword [esi + 0x158], eax
lea ecx, [esi + 0x150]
lea eax, [esi + 0x19c]
push eax
call fcn.10045d7e
lea ebx, [esi + 0x160]
mov ecx, ebx
call fcn.10046a3c
test al, al
je 0x10187616
mov dword [esi + 0x10], esp
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x6c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov edi, dword [ebp + 0xc]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, ebx
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10187616
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x10185f79
lea ecx, [eax - 0x12]
cmp ecx, 2
lea edi, [esi + 0x180]
lea ebx, [esi + 0x170]
jae 0x10186572
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x144], edi
mov dword [esi + 0x140], eax
mov ecx, ebx
lea eax, [esi + 0x140]
push eax
call fcn.10045daa
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 8
mov dword [esi + 0x34], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x38], esp
lea eax, [edi + 4]
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
push 0xf8
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x38]
push 3
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0xc]
mov dword [esi + 0x34], esp
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
push 0xfc00
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 5
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
push 0xf80000
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 8
jmp 0x10186457
cmp eax, 0x17
lea edi, [esi + 0x180]
lea ebx, [esi + 0x170]
je 0x101862b5
cmp eax, 0x1b
je 0x101862b5
cmp eax, 0x2d
lea edx, [esi + 0xa0]
jne 0x1018651f
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov ecx, edi
xor eax, eax
inc eax
push eax
push edx
call fcn.100ac59a
mov eax, dword [esi + 0x18c]
mov dword [esi + 0x18], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0x18]
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
mov byte [ebx + 8], 8
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x170]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x140], eax
mov dword [esi + 0x144], eax
mov dword [esi + 0x148], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x18], esp
lea eax, [edi + 4]
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.1003ed18
add esp, 0xc
mov esp, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
mov dword [edi], ebx
mov edi, dword [edi + 4]
call fcn.1003f94e
push eax
push edi
call fcn.1003d17a
add esp, 8
mov dword [ebx], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x140]
call fcn.10045c9a
mov esp, dword [esi + 0x10]
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 8
mov dword [esi + 0x34], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x38], esp
lea eax, [edi + 4]
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
push 0xf8
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x38]
push 8
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0xc]
mov dword [esi + 0x34], esp
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
push 0xfc00
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 5
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
push 0xf80000
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 0x13
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0x124]
mov ecx, edi
call fcn.10044a0e
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac46a
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov ebx, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push edi
lea edi, [esi + 0x180]
push ecx
push eax
push ebx
push dword [esi + 0x10]
call fcn.1003cf56
add esp, 0x1c
mov esp, dword [esi + 0x14]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x124]
jmp 0x101864fe
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x144], edi
mov dword [esi + 0x140], eax
mov ecx, ebx
lea eax, [esi + 0x140]
push eax
call fcn.10045daa
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x14], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 8
mov dword [esi + 0x34], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x38], esp
lea eax, [edi + 4]
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
push 0xf8
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x38]
push 8
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0xc]
mov dword [esi + 0x34], esp
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
push 0xfc00
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 5
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
push 0xf80000
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
push 0x13
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0x140]
mov ecx, edi
call fcn.10044a0e
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac46a
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov ebx, eax
call fcn.1003d770
xor ecx, ecx
push ecx
push ecx
push edi
lea edi, [esi + 0x180]
push ecx
push eax
push ebx
push dword [esi + 0x10]
call fcn.1003cf56
add esp, 0x1c
mov esp, dword [esi + 0x14]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x170]
call fcn.10048de8
lea edx, [esi + 0xa0]
push dword [esi + 0x64]
push edx
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x68]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push 0
lea ebx, [esi + 0x150]
push ebx
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
jmp 0x10185d49
cmp eax, 0xf
lea edx, [esi + 0xa0]
jne 0x1018651f
mov ecx, edi
xor eax, eax
inc eax
push eax
push edx
call fcn.100ac46a
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x144], edi
mov dword [esi + 0x140], eax
lea ebx, [esi + 0x170]
mov ecx, ebx
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac46a
mov edi, dword [esi + 0x17c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x128], edi
lea edi, [esi + 0x180]
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1013fda6
mov ecx, ebx
call fcn.10048de8
mov ecx, edi
jmp 0x10186514
xor eax, eax
dec eax
mov dword [esi + 0x168], eax
xor ecx, ecx
mov dword [esi + 0x160], ecx
mov dword [esi + 0x164], ecx
mov byte [esi + 0x168], 1
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], eax
mov dword [esi + 0x158], eax
lea ecx, [esi + 0x150]
lea eax, [esi + 0x19c]
push eax
call fcn.10045d7e
lea ebx, [esi + 0x160]
mov ecx, ebx
call fcn.10046a3c
test al, al
je 0x10187616
mov dword [esi + 0x10], esp
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x6c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov edi, dword [ebp + 0xc]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, ebx
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10187616
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x1018691f
lea ecx, [eax - 0x12]
cmp ecx, 2
jae 0x10186fe5
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
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 + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
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 + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 2
jmp 0x10186e8c
cmp eax, 0x17
lea ecx, [esi + 0xa0]
je 0x10186c35
cmp eax, 0x1b
je 0x10186c35
cmp eax, 0x2d
lea ebx, [esi + 0xc0]
lea edi, [esi + 0x180]
jne 0x10186f98
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 5
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 3
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
mov edi, eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
mov dword [esi + 0x18c], edi
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 2
jmp 0x10186f06
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 2
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
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 + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
mov ebx, ecx
call fcn.100447aa
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
mov ecx, ebx
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
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 + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x10], esp
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 2
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
lea ebx, [esi + 0xc0]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov edi, dword [esi + 0x17c]
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [esi + 0x128], edi
lea edi, [esi + 0x180]
mov dword [esi + 0x124], eax
lea ecx, [esi + 0x124]
lea eax, [esi + 0x140]
push eax
lea eax, [esi + 0x114]
push eax
call fcn.1018aba4
lea ecx, [esi + 0x170]
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0xa0]
push dword [esi + 0x64]
push ecx
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x68]
push ebx
push edi
call fcn.10047bae
add esp, 0xc
push 0
lea ebx, [esi + 0x150]
push ebx
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
jmp 0x10186646
cmp eax, 0xf
lea ebx, [esi + 0xc0]
lea ecx, [esi + 0xa0]
lea edi, [esi + 0x180]
jne 0x10186f98
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0xc], esp
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac46a
mov ebx, dword [esi + 0x18c]
mov ecx, edi
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 ecx, dword [esi + 0xc]
mov dword [ecx], eax
lea ecx, [esi + 0x170]
call fcn.10045c68
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x14], esp
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0xc], ecx
mov dword [esi + 0x34], esp
mov eax, 8
add eax, ecx
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x24], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
push 0x1c
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, 2
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, 4
mov ecx, dword [esi + 0xc]
add ecx, eax
mov dword [esi + 0x38], ecx
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x24], esp
add eax, edi
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
push 0x1f
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, 3
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x38]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0x140]
mov ecx, edi
call fcn.10044960
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
push eax
mov ebx, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
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 + 0x18]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x124]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.1003d760
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 + 0x124], ebx
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x180]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
mov dword [esi + 0x14], esp
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x34], esp
add eax, 8
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x24], esp
mov eax, 4
add eax, ebx
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
push 0x600
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, 4
mov ecx, dword [esi + 0xc]
add ecx, eax
mov dword [esi + 0x38], ecx
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x24], esp
add eax, edi
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
push 0x7e0
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
push 5
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x38]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0x140]
mov ecx, edi
call fcn.10044960
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
push eax
mov ebx, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
xor eax, eax
inc eax
mov dword [edi + 8], eax
mov edi, eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
mov dword [esi + 0x18c], edi
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x124]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.1003d760
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 + 0x124], ebx
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x180]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
mov dword [esi + 0x14], esp
sub esp, 8
mov dword [esi + 0x10], esp
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x2c], esp
mov dword [esi + 0x1c], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x34], esp
add eax, 8
mov dword [esi + 0x38], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x24], esp
lea eax, [ebx + 4]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
push 0xe000
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, 3
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x38]
mov dword [ebx], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x24], esp
lea eax, [edi + 4]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
push 0xf800
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x24]
push 8
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x38]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0x140]
mov ecx, edi
call fcn.10044960
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], esp
mov ecx, dword [esi + 0x10]
mov dword [ecx + 4], eax
push eax
mov ebx, esp
mov dword [esi + 0x18], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 2
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x180]
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
lea ecx, [esi + 0x180]
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x124]
mov ebx, dword [esi + 0x10]
mov dword [ebx], eax
call fcn.1003d760
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
lea edi, [esi + 0x180]
push ebx
call fcn.1003cf56
add esp, 0x1c
mov dword [esi + 0x124], ebx
lea ebx, [esi + 0xc0]
mov esp, dword [esi + 0x14]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x170]
jmp 0x10186f8d
lea ecx, [esi + 0x150]
jmp 0x10189fe6
cmp eax, 0x17
je 0x10188db0
cmp eax, 0x1b
je 0x10188db0
cmp eax, 0x2d
lea edi, [esi + 0x160]
jne 0x1018962a
mov dword [esi + 0x178], 0xffffffff
xor eax, eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov byte [esi + 0x178], 1
lea ecx, [esi + 0x170]
call fcn.10046a3c
test al, al
je 0x10189624
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x88]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xe8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x170]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10189624
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov dword [esi + 0x168], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], esp
add eax, 4
mov dword [esi + 0x24], eax
sub esp, 0xc
mov dword [esi + 0x20], esp
mov dword [esi + 0x30], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x28], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
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 + 0x28]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x180]
mov ecx, ebx
call fcn.100c4716
mov esp, dword [esi + 0x30]
mov edi, dword [esi + 0x18c]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
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 ecx, dword [esi + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx], eax
mov ax, 0x2103
mov word [ecx + 8], ax
call fcn.100452c2
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov edi, dword [ecx + 4]
call fcn.1003e6f0
push eax
push edi
call fcn.1003d17a
add esp, 8
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 4], eax
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov al, 8
mov byte [ecx + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x160]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], eax
mov dword [esi + 0x158], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], esp
add eax, 4
mov dword [esi + 0x24], eax
sub esp, 0xc
mov dword [esi + 0x20], esp
mov dword [esi + 0x30], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x28], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov eax, 8
mov dword [edi + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x28]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x180]
mov ecx, ebx
call fcn.100c4716
mov esp, dword [esi + 0x30]
mov edi, dword [esi + 0x18c]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
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 + 0x20]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ecx], eax
mov ax, 0x2103
mov word [ecx + 8], ax
call fcn.100452c2
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov edi, dword [ecx + 4]
call fcn.1003e6f0
push eax
push edi
call fcn.1003d17a
add esp, 8
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 4], eax
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov al, 8
mov byte [ecx + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x150]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x18], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x1c], esp
lea eax, [ebx + 4]
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
call fcn.1003ed18
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [ebx], eax
mov edi, dword [ebx + 4]
call fcn.1003f94e
push eax
push edi
call fcn.1003d17a
add esp, 8
mov edi, dword [esi + 0x14]
mov dword [edi + 4], eax
mov esp, dword [esi + 0xc]
lea ebx, [esi + 0x180]
mov ecx, ebx
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10119ee8
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xc], eax
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0x140]
mov dword [edi], eax
call fcn.1003f94e
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push ebx
push dword [edi + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [edi + 4]
mov dword [esi + 0x140], eax
mov esp, dword [esi + 0x10]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x84]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x80]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 2
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0xe8]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
push dword [esi + 0x170]
call fcn.1003c692
add esp, 4
push dword [esi + 0x174]
call fcn.1003c4f4
add esp, 4
jmp 0x10187661
cmp eax, 0xf
lea edi, [esi + 0x160]
jne 0x101883b8
mov dword [esi + 0x100], 0xffffffff
xor eax, eax
mov dword [esi + 0xf8], eax
mov dword [esi + 0xfc], eax
mov byte [esi + 0x100], 1
lea ecx, [esi + 0xf8]
call fcn.10046a3c
test al, al
je 0x101883b2
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xf8]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x101883b2
mov dword [esi + 0x10], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x180], xmm0
push eax
mov dword [esi + 0xc], esp
lea edi, [esi + 0x170]
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac59a
mov ebx, dword [esi + 0x17c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
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 + 0xc]
mov dword [ecx], eax
lea ecx, [esi + 0x180]
call fcn.1003fb82
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x170]
call fcn.10048de8
mov dword [esi + 0x18], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x2c], esp
add eax, 4
mov dword [esi + 0x34], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x38], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x170]
push 0xe000
call fcn.10046554
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
mov byte [ebx + 8], 0xd
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x160]
push 0xf800
call fcn.10046554
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [edi], eax
mov byte [edi + 8], 8
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x14]
mov dword [esi + 0x38], esp
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x24], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x20], esp
add eax, 8
mov dword [esi + 0x30], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x28], esp
add eax, 8
mov dword [esi + 0x4c], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x48], esp
lea eax, [edi + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x150]
push 0x600
call fcn.10046554
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
mov byte [edi + 8], 1
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x4c], eax
push eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x48], esp
lea eax, [ebx + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x140]
push 0x7e0
call fcn.10046554
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [ebx], eax
mov byte [ebx + 8], 5
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x30], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x28], eax
mov dword [esi + 0x4c], esp
add eax, 8
mov dword [esi + 0x48], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x3c], esp
add eax, 8
mov dword [esi + 0x60], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x5c], esp
lea eax, [ebx + 4]
mov dword [esi + 0x58], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x124]
push 0x1c
call fcn.10046554
lea ecx, [esi + 0x124]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x58]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x5c]
mov eax, dword [esi + 0x60]
mov dword [ebx], eax
mov byte [ebx + 8], 0xe
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x60], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x5c], esp
lea eax, [edi + 4]
mov dword [esi + 0x58], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x114]
push 0x1f
call fcn.10046554
lea ecx, [esi + 0x114]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x58]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x5c]
mov eax, dword [esi + 0x60]
mov dword [edi], eax
mov byte [edi + 8], 0x13
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x4c]
lea edi, [esi + 0x104]
mov ecx, edi
push 0xff000000
call fcn.10046554
mov ecx, edi
call fcn.100447aa
mov ecx, dword [esi + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x30]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x2c]
lea edi, [esi + 0xe8]
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac5e8
mov eax, dword [esi + 0xf4]
mov dword [esi + 0x10], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0xe4]
mov ebx, dword [esi + 0x1c]
mov dword [ebx], eax
call fcn.1003fa60
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0x10]
push ecx
push eax
push edi
push dword [ebx + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0xe4], eax
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0xe8]
call fcn.10048de8
lea ecx, [esi + 0x104]
call fcn.10048de8
lea ecx, [esi + 0x114]
call fcn.10048de8
lea ecx, [esi + 0x124]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x180]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0x134]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
push dword [esi + 0xf8]
call fcn.1003c692
add esp, 4
push dword [esi + 0xfc]
call fcn.1003c4f4
add esp, 4
jmp 0x10187aa3
mov dword [esi + 0x178], 0xffffffff
xor eax, eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov byte [esi + 0x178], 1
lea ecx, [esi + 0x170]
call fcn.10046a3c
test al, al
je 0x101883b2
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x88]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x170]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x101883b2
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov dword [esi + 0x168], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 0x18], esp
mov dword [esi + 0x1c], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x2c], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xa0]
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 + 0x2c]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100c4716
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
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 ecx, dword [esi + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov al, 8
mov byte [ecx + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x160]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], eax
mov dword [esi + 0x158], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 0x18], esp
mov dword [esi + 0x1c], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x2c], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xa0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov eax, 8
mov dword [ebx + 8], eax
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x2c]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100c4716
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18c]
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
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 + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov al, 8
mov byte [ecx + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x150]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 0x18], eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 4]
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.1003ed18
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [edi], eax
mov edi, dword [edi + 4]
call fcn.1003f94e
push eax
push edi
call fcn.1003d17a
add esp, 8
mov ebx, dword [esi + 0x14]
mov dword [ebx + 4], eax
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x180]
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10119ee8
mov eax, dword [esi + 0x18c]
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x140]
mov dword [ebx], eax
call fcn.1003f94e
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0xc]
push ecx
push eax
push edi
push dword [ebx + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x140], eax
mov esp, dword [esi + 0x10]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x84]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x80]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 2
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0x134]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
lea edi, [esi + 0x170]
push dword [esi + 0x170]
call fcn.1003c692
add esp, 4
push dword [esi + 0x174]
call fcn.1003c4f4
add esp, 4
mov ecx, edi
jmp 0x10188056
lea edi, [esi + 0x160]
mov dword [esi + 0x168], 0xffffffff
xor eax, eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov byte [esi + 0x168], 1
mov ecx, edi
call fcn.10046a3c
test al, al
je 0x10188da5
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x6c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x134]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov edi, dword [ebp + 0xc]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x160]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10188da5
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x101886bf
lea ecx, [eax - 0x12]
cmp ecx, 2
lea edi, [esi + 0x180]
jae 0x1018876a
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
lea ebx, [esi + 0x150]
push ebx
call fcn.10045daa
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x18], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x34], eax
sub esp, 0xc
mov edi, esp
mov ecx, ebx
push 0xff00ff00
call fcn.10045d2e
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x14]
mov dword [esi + 0x34], esp
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x140]
push 0xff
call fcn.10045d2e
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 0x10
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x124]
push 0xff0000
call fcn.10045d2e
lea ecx, [esi + 0x124]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 0x10
push eax
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x114]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push ebx
push ecx
push eax
push edi
lea edi, [esi + 0x180]
mov ebx, dword [esi + 0x10]
push dword [ebx + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [ebx + 4]
mov dword [esi + 0x114], eax
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x124]
call fcn.10048de8
lea ecx, [esi + 0x140]
jmp 0x10188d2b
cmp eax, 0x17
lea edi, [esi + 0x180]
je 0x101886dc
cmp eax, 0x2d
je 0x10188bcc
cmp eax, 0x1b
jne 0x10188d46
mov ecx, edi
xor ebx, ebx
inc ebx
push ebx
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
push ebx
lea ebx, [esi + 0xc0]
push ebx
call fcn.100ac4b8
mov edi, dword [esi + 0x17c]
lea ebx, [esi + 0x170]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x144], edi
lea edi, [esi + 0x180]
mov dword [esi + 0x140], eax
lea ecx, [esi + 0x140]
lea eax, [esi + 0x150]
push eax
lea eax, [esi + 0x124]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov ecx, edi
jmp 0x10188d41
cmp eax, 0xf
jne 0x10188d46
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0xc], esp
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac46a
mov ebx, dword [esi + 0x18c]
mov ecx, edi
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 ecx, dword [esi + 0xc]
mov dword [ecx], eax
lea ecx, [esi + 0x170]
call fcn.10045c68
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x34], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x38], esp
add eax, 4
mov dword [esi + 0x24], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 4]
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
push 0xe000
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x1c]
push 0xd
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x14]
mov dword [esi + 0x20], esp
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x30], eax
push eax
sub esp, 8
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 edi, esp
mov dword [esi + 0x2c], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
push 0xf800
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x2c]
push 8
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x18]
mov dword [esi + 0x28], esp
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x4c], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], esp
add eax, 8
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x48], esp
lea eax, [edi + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
push 0x600
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov dword [esi + 0x48], esp
mov eax, dword [esi + 0x18]
add eax, 4
mov dword [esi + 0x3c], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x2c], esp
add eax, 8
mov dword [esi + 0x60], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x5c], esp
lea eax, [edi + 4]
mov dword [esi + 0x58], eax
sub esp, 0xc
mov ebx, esp
push 0x7e0
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x58]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x5c]
push 5
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x60]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x2c]
mov dword [esi + 0x60], esp
mov eax, dword [esi + 0x1c]
add eax, 4
mov dword [esi + 0x5c], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x2c], eax
mov dword [esi + 0x58], esp
add eax, 8
mov dword [esi + 0x78], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x74], esp
lea eax, [ebx + 4]
mov dword [esi + 0x70], eax
sub esp, 0xc
mov edi, esp
push 0x1c
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x70]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x74]
push 0xe
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x78]
mov dword [ebx], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x58]
mov eax, dword [esi + 0x2c]
add eax, 4
mov dword [esi + 0x78], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], esp
add eax, 8
mov dword [esi + 0x9c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x98], esp
lea eax, [ebx + 4]
mov dword [esi + 0x94], eax
sub esp, 0xc
mov edi, esp
push 0x1f
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x94]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x98]
push 0x13
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x9c]
mov dword [ebx], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x70]
push 0xff000000
call fcn.1003d090
add esp, 4
mov ecx, dword [esi + 0x74]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x78]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x60]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x38]
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x150]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
lea edi, [esi + 0x180]
mov eax, dword [esi + 0x10]
push dword [eax + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [esi + 0x150], eax
mov esp, dword [esi + 0x34]
mov ecx, edi
jmp 0x10188d36
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac59a
mov eax, dword [esi + 0x18c]
mov dword [esi + 0x18], eax
mov ecx, edi
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0x18]
push ecx
push eax
push edi
call fcn.1003cd7a
add esp, 0x18
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x14]
mov dword [ebx], eax
mov byte [ebx + 8], 8
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x170]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x18], esp
mov dword [esi + 0x14], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 4]
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.1003ed18
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov dword [edi], ebx
mov edi, dword [edi + 4]
call fcn.1003f94e
push eax
push edi
call fcn.1003d17a
add esp, 8
mov dword [ebx], eax
mov esp, dword [esi + 0x14]
lea edi, [esi + 0x150]
mov ecx, edi
call fcn.10045c9a
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov ebx, eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push edi
lea edi, [esi + 0x180]
push ecx
push eax
push ebx
push dword [esi + 0xc]
call fcn.1003cf56
add esp, 0x1c
mov esp, dword [esi + 0x10]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x170]
call fcn.10048de8
push dword [esi + 0x64]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x68]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push 0
lea eax, [esi + 0x134]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0x160]
jmp 0x101883d9
lea ecx, [esi + 0x134]
jmp 0x10189fe6
mov dword [esi + 0x12c], 0xffffffff
xor eax, eax
mov dword [esi + 0x124], eax
mov dword [esi + 0x128], eax
mov byte [esi + 0x12c], 1
lea ecx, [esi + 0x124]
call fcn.10046a3c
test al, al
je 0x10189624
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xe8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x124]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10189624
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x180], xmm0
lea ebx, [esi + 0x170]
mov ecx, ebx
push dword [esi + 0x54]
lea eax, [esi + 0xa0]
push eax
call fcn.100ac5e8
mov edi, dword [esi + 0x17c]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x164], edi
mov dword [esi + 0x160], eax
lea ecx, [esi + 0x180]
lea eax, [esi + 0x160]
push eax
call fcn.10046680
mov ecx, ebx
call fcn.10048de8
mov dword [esi + 0xc], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], esp
add eax, 4
mov dword [esi + 0x1c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x10], esp
lea ecx, [ebx + 8]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x2c], ebx
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x170]
push 0xff00ff00
call fcn.10046554
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x10]
mov dword [esi + 0x34], esp
lea eax, [ebx + 4]
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x160]
push 0xff
call fcn.10046554
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
mov al, 0x10
mov byte [ebx + 8], al
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x150]
push 0xff0000
call fcn.10046554
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [edi], eax
mov al, 0x10
mov byte [edi + 8], al
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x18]
lea edi, [esi + 0x140]
mov ecx, edi
push 1
lea eax, [esi + 0xc0]
push eax
call fcn.100ac5e8
mov eax, dword [esi + 0x14c]
mov dword [esi + 0x10], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0x114]
mov edi, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003fa60
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0x10]
push ecx
push eax
push ebx
push dword [edi + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [edi + 4]
mov dword [esi + 0x114], eax
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x180]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0xe8]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
push dword [esi + 0x124]
call fcn.1003c692
add esp, 4
push dword [esi + 0x128]
call fcn.1003c4f4
add esp, 4
jmp 0x10188dcf
cmp eax, 0xf
lea edi, [esi + 0x160]
jne 0x1018962a
mov dword [esi + 0x13c], 0xffffffff
xor eax, eax
mov dword [esi + 0x134], eax
mov dword [esi + 0x138], eax
mov byte [esi + 0x13c], 1
lea ecx, [esi + 0x134]
call fcn.10046a3c
test al, al
je 0x10189624
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x44]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xe8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x134]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10189624
mov dword [esi + 0x10], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x180], xmm0
push eax
mov dword [esi + 0xc], esp
lea ebx, [esi + 0x170]
mov ecx, ebx
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac59a
mov edi, dword [esi + 0x17c]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
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], eax
lea ecx, [esi + 0x180]
call fcn.1003fb82
mov esp, dword [esi + 0x10]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.10048de8
mov dword [esi + 0x18], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x2c], esp
add eax, 4
mov dword [esi + 0x34], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], esp
add eax, 8
mov dword [esi + 0x14], eax
sub esp, 0xc
mov ebx, esp
mov ecx, edi
push 0xff000000
call fcn.10046554
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0x38], esp
mov dword [esi + 0x24], ebx
mov dword [ebx + 8], eax
lea eax, [ebx + 4]
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x30], esp
lea eax, [ebx + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x160]
push 0x1c
call fcn.10046554
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
mov byte [ebx + 8], 2
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x38]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0xc]
mov dword [esi + 0x38], esp
mov eax, dword [esi + 0x10]
add eax, 4
mov dword [esi + 0x24], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x20], esp
add eax, 8
mov dword [esi + 0x30], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x28], esp
add eax, 8
mov dword [esi + 0x4c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x48], esp
lea eax, [ebx + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x150]
push 0x600
call fcn.10046554
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [ebx], eax
mov byte [ebx + 8], 1
call fcn.1003da32
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x4c], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x48], esp
lea eax, [edi + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x140]
push 0x7e0
call fcn.10046554
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
mov byte [edi + 8], 5
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x30], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x28], esp
add eax, 8
mov dword [esi + 0x4c], eax
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x48], esp
lea eax, [ebx + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x124]
push 0xe01f
call fcn.10046554
lea ecx, [esi + 0x124]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [ebx], eax
mov byte [ebx + 8], 3
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x4c], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x48], esp
lea eax, [edi + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x114]
push 0xf800
call fcn.10046554
lea ecx, [esi + 0x114]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
mov byte [edi + 8], 8
call fcn.1003da92
add esp, 0xc
mov esp, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x2c]
lea edi, [esi + 0x104]
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac5e8
mov eax, dword [esi + 0x110]
mov dword [esi + 0x10], eax
mov ecx, edi
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0xf8]
mov edi, dword [esi + 0x1c]
mov dword [edi], eax
call fcn.1003fa60
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push dword [esi + 0x10]
push ecx
push eax
push ebx
push dword [edi + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [edi + 4]
mov dword [esi + 0xf8], eax
mov esp, dword [esi + 0x18]
lea ecx, [esi + 0x104]
call fcn.10048de8
lea ecx, [esi + 0x114]
call fcn.10048de8
lea ecx, [esi + 0x124]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.10048de8
push dword [esi + 0x50]
lea eax, [esi + 0xa0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x40]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x180]
call fcn.10048de8
mov edi, esp
sub esp, 0xc
mov ebx, esp
push 4
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea eax, [esi + 0x180]
mov dword [ebx], eax
lea eax, [esi + 0xe8]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
push dword [esi + 0x134]
call fcn.1003c692
add esp, 4
push dword [esi + 0x138]
call fcn.1003c4f4
add esp, 4
jmp 0x10189133
lea edi, [esi + 0x160]
mov dword [esi + 0x168], 0xffffffff
xor eax, eax
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], eax
mov byte [esi + 0x168], 1
mov ecx, edi
call fcn.10046a3c
test al, al
je 0x10189fe0
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
push dword [esi + 0x6c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0xe8]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov edi, dword [ebp + 0xc]
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x160]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x10189fe0
mov eax, dword [edi + 0xc]
cmp eax, 0x16
jg 0x10189754
lea ecx, [eax - 0x12]
cmp ecx, 2
lea edi, [esi + 0x180]
jae 0x10189bb2
mov ecx, edi
xor ebx, ebx
inc ebx
push ebx
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
push ebx
lea ebx, [esi + 0xc0]
push ebx
call fcn.100ac4b8
mov edi, dword [esi + 0x17c]
lea ebx, [esi + 0x170]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x144], edi
lea edi, [esi + 0x180]
mov dword [esi + 0x140], eax
lea ecx, [esi + 0x140]
lea eax, [esi + 0x150]
push eax
lea eax, [esi + 0x124]
push eax
call fcn.100fa71a
mov ecx, ebx
call fcn.10048de8
mov ecx, edi
jmp 0x10189f7c
cmp eax, 0x17
lea edi, [esi + 0x180]
je 0x10189939
cmp eax, 0x1b
je 0x10189939
cmp eax, 0x2d
lea edx, [esi + 0xa0]
jne 0x10189f87
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x34], esp
lea eax, [ebx + 4]
mov dword [esi + 0x38], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
push edx
call fcn.100ac59a
mov eax, dword [esi + 0x18c]
mov dword [esi + 0x24], eax
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x20], eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
push ecx
push dword [esi + 0x24]
push ecx
push eax
push dword [esi + 0x20]
call fcn.1003cd7a
add esp, 0x18
mov dword [edi + 4], eax
mov eax, dword [esi + 0x38]
mov dword [edi], eax
mov word [edi + 8], 0x2103
call fcn.100452c2
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov edi, dword [ebx + 4]
call fcn.1003e6f0
push eax
push edi
call fcn.1003d17a
add esp, 8
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 4], eax
mov esp, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
mov dword [ecx], eax
mov byte [ecx + 8], 8
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x170]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x10], esp
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x18], esp
mov dword [esi + 0x14], esp
sub esp, 8
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 4]
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.1003ed18
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
mov dword [edi], ebx
mov edi, dword [edi + 4]
call fcn.1003f94e
push eax
push edi
call fcn.1003d17a
add esp, 8
mov dword [ebx], eax
mov esp, dword [esi + 0x14]
lea edi, [esi + 0x150]
mov ecx, edi
call fcn.10045c9a
mov esp, dword [esi + 0xc]
mov ecx, edi
call fcn.100447aa
mov dword [esi + 0xc], eax
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
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
lea edi, [esi + 0x180]
push dword [esi + 0xc]
call fcn.1003cf56
add esp, 0x1c
mov esp, dword [esi + 0x10]
mov ecx, edi
jmp 0x10189ba2
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
mov ecx, edi
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xa0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov dword [esi + 0x154], edi
mov dword [esi + 0x150], eax
lea ecx, [esi + 0x170]
lea ebx, [esi + 0x150]
push ebx
call fcn.10045daa
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x18], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x34], eax
sub esp, 0xc
mov edi, esp
mov ecx, ebx
push 0xff00ff00
call fcn.10045d2e
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x34]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x14]
mov dword [esi + 0x34], esp
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x38], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x24], esp
add eax, 8
mov dword [esi + 0x20], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x140]
push 0xff
call fcn.10045d2e
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 0x10
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
mov edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x124]
push 0xff0000
call fcn.10045d2e
lea ecx, [esi + 0x124]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, 0x10
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x20]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x1c]
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov edi, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov ebx, eax
lea eax, [esi + 0x114]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
push edi
lea edi, [esi + 0x180]
push ecx
push eax
push ebx
mov eax, dword [esi + 0x10]
push dword [eax + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [esi + 0x114], eax
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x124]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
jmp 0x10189f71
cmp eax, 0xf
lea edx, [esi + 0xa0]
jne 0x10189f87
mov dword [esi + 0x10], esp
xor eax, eax
dec eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov dword [esi + 0x178], eax
push eax
mov dword [esi + 0xc], esp
mov ecx, edi
xor eax, eax
inc eax
push eax
push edx
call fcn.100ac46a
mov ebx, dword [esi + 0x18c]
mov ecx, edi
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 ecx, dword [esi + 0xc]
mov dword [ecx], eax
lea ecx, [esi + 0x170]
call fcn.10045c68
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x180]
call fcn.10048de8
mov dword [esi + 0x2c], esp
sub esp, 8
mov eax, esp
mov dword [esi + 0x10], eax
mov dword [esi + 0x34], esp
add eax, 4
mov dword [esi + 0x38], eax
sub esp, 0xc
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], esp
add eax, 8
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x1c], esp
lea eax, [edi + 4]
mov dword [esi + 0x24], eax
sub esp, 0xc
mov ebx, esp
push 0x1c
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x1c]
push 2
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x14]
mov dword [esi + 0x24], esp
mov eax, dword [esi + 0xc]
add eax, 4
mov dword [esi + 0x20], eax
push eax
sub esp, 8
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 edi, esp
mov dword [esi + 0x30], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
push 0x600
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x30]
xor eax, eax
inc eax
push eax
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1c]
mov dword [edi], eax
call fcn.10045ea3
add esp, 0xc
mov esp, dword [esi + 0x18]
mov dword [esi + 0x30], esp
mov eax, dword [esi + 0x14]
add eax, 4
mov dword [esi + 0x28], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], esp
add eax, 8
mov dword [esi + 0x4c], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x48], esp
lea eax, [edi + 4]
mov dword [esi + 0x3c], eax
sub esp, 0xc
mov ebx, esp
push 0x7e0
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x48]
push 5
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x4c]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x1c]
mov dword [esi + 0x4c], esp
mov eax, dword [esi + 0x18]
add eax, 4
mov dword [esi + 0x48], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x3c], esp
add eax, 8
mov dword [esi + 0x60], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x5c], esp
lea eax, [edi + 4]
mov dword [esi + 0x58], eax
sub esp, 0xc
mov ebx, esp
push 0xe01f
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x58]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x5c]
push 3
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x60]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov eax, dword [esi + 0x1c]
add eax, 4
mov dword [esi + 0x60], eax
push eax
sub esp, 8
mov eax, esp
mov dword [esi + 0x5c], eax
mov dword [esi + 0x58], esp
add eax, 8
mov dword [esi + 0x78], eax
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x74], esp
lea eax, [edi + 4]
mov dword [esi + 0x70], eax
sub esp, 0xc
mov ebx, esp
push 0xf800
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x170]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x70]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0x74]
push 8
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
mov eax, dword [esi + 0x78]
mov dword [edi], eax
call fcn.10045e86
add esp, 0xc
mov esp, dword [esi + 0x58]
push 0xff000000
call fcn.1003d090
add esp, 4
mov ecx, dword [esi + 0x5c]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x60]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x4c]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x30]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
call fcn.10044943
add esp, 0xc
mov esp, dword [esi + 0x34]
lea ecx, [esi + 0x180]
xor eax, eax
inc eax
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.100ac4b8
mov ebx, dword [esi + 0x18c]
lea ecx, [esi + 0x180]
call fcn.100447aa
mov edi, eax
lea eax, [esi + 0x150]
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.1003c4d0
xor ecx, ecx
push ecx
push ecx
xor ecx, ecx
push ebx
push ecx
push eax
push edi
lea edi, [esi + 0x180]
mov eax, dword [esi + 0x10]
push dword [eax + 4]
call fcn.1003cf56
add esp, 0x1c
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [esi + 0x150], eax
mov esp, dword [esi + 0x2c]
mov ecx, edi
call fcn.10048de8
lea ecx, [esi + 0x170]
call fcn.10048de8
lea edx, [esi + 0xa0]
push dword [esi + 0x64]
push edx
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x68]
lea eax, [esi + 0xc0]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push 0
lea eax, [esi + 0xe8]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x160]
call fcn.1003c692
add esp, 4
push dword [esi + 0x164]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0x160]
jmp 0x1018964b
lea ecx, [esi + 0xe8]
call fcn.10048de8
lea ecx, [esi + 0x19c]
call fcn.10048de8
lea ecx, [esi + 0xa0]
call fcn.10048de8
lea edi, [esi + 0xc0]
mov ecx, edi
call fcn.10048de8
push 0
lea eax, [esi + 0x1a8]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x1b4]
call fcn.1003c692
add esp, 4
push dword [esi + 0x1b8]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0x1b4]
call fcn.10046a3c
test al, al
jne 0x10185434
mov edi, dword [ebp + 8]
lea ecx, [esi + 0x1a8]
call fcn.10048de8
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x18], 0
jle 0x1018a99a
cmp dword [eax + 0x1c], 0
jle 0x1018a99a
mov dword [esi + 0x10], esp
lea ecx, [esi + 0x150]
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 + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1c0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 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 + 0xc0]
mov ecx, edi
call fcn.10044144
mov esp, dword [esi + 0x10]
mov ebx, dword [edi + 0xc]
mov ecx, edi
call fcn.100447aa
lea edx, [esi + 0xa0]
mov dword [edx + 4], ebx
mov dword [edx], eax
lea ecx, [esi + 0x150]
push edx
call fcn.10045daa
mov ecx, edi
call fcn.10048de8
mov dword [esi + 0x10], esp
lea ecx, [esi + 0x140]
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 + 0xc], esp
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0x1c0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov dword [ebx], edi
mov dword [ebx + 8], 8
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0xc]
xor eax, eax
inc eax
mov dword [edi + 4], eax
lea ebx, [esi + 0xc0]
mov ecx, ebx
call fcn.10044144
mov esp, dword [esi + 0x10]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
lea ecx, [esi + 0xa0]
mov dword [ecx + 4], edi
mov dword [ecx], eax
mov eax, ecx
lea ecx, [esi + 0x140]
push eax
call fcn.10045daa
mov ecx, ebx
call fcn.10048de8
lea edi, [esi + 0x124]
xor edx, edx
dec edx
mov dword [edi + 8], edx
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov byte [edi + 8], 1
lea ecx, [esi + 0x114]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
push eax
call fcn.10045d2e
mov ecx, edi
call fcn.10046a3c
test al, al
je 0x1018a976
mov dword [esi + 0x10], esp
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov eax, dword [ebp + 0xc]
push dword [eax + 0x1c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x114]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x124]
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x1018a976
mov dword [esi + 0x10], esp
xor ebx, ebx
dec ebx
mov dword [esi + 0x104], ebx
mov dword [esi + 0x108], ebx
mov dword [esi + 0x10c], ebx
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x114]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x140]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x44]
mov dword [edi], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x104]
call fcn.10045d5c
mov esp, dword [esi + 0x10]
mov dword [esi + 0xd4], ebx
mov dword [esi + 0xd0], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xc0], xmm0
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov ebx, esp
mov dword [esi + 0x50], esp
lea eax, [ebx + 4]
mov dword [esi + 0x40], eax
sub esp, 0xc
mov edi, esp
push 0
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x104]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x40]
mov dword [edi], eax
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 0x50]
lea eax, [ebx + 8]
mov dword [esi + 0x40], eax
push eax
sub esp, 8
mov edi, esp
push dword [esi + 0x8c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x104]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x40]
mov dword [edi], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0x50]
mov eax, dword [esi + 0x44]
mov dword [ebx], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xc0]
call fcn.10044048
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xd4]
cmp eax, 2
jg 0x1018a925
test eax, eax
jne 0x1018a911
mov dword [esi + 0x10], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x180], xmm0
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x40], esp
lea ecx, [edi + 8]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], edi
sub esp, 0xc
mov ebx, esp
push dword [esi + 0x68]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x40]
mov eax, 4
add eax, edi
mov dword [esi + 0x54], eax
push eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x14], esp
lea eax, [ebx + 8]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
push dword [esi + 0x90]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x104]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x1e0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
mov eax, dword [esi + 0x50]
mov dword [eax], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x180]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x180], eax
xor eax, eax
inc eax
mov dword [esi + 0x18c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x170], xmm0
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x40], esp
lea ecx, [edi + 8]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], edi
sub esp, 0xc
mov ebx, esp
push dword [esi + 0x64]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x40]
lea eax, [edi + 4]
mov dword [esi + 0x54], eax
push eax
sub esp, 8
mov ebx, esp
mov dword [esi + 0x14], esp
lea eax, [ebx + 8]
mov dword [esi + 0x18], eax
sub esp, 0xc
mov edi, esp
push dword [esi + 0x7c]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x104]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x18]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x14]
lea ecx, [esi + 0x1d0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x40]
mov ebx, dword [esi + 0x44]
mov eax, dword [esi + 0x50]
mov dword [eax], ebx
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0xc]
lea edi, [esi + 0x170]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x170], eax
xor eax, eax
inc eax
mov dword [esi + 0x17c], eax
mov ecx, edi
push dword [ebx]
call fcn.10044766
mov esp, dword [esi + 0x10]
mov dword [esi + 0xc], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x160], xmm0
push eax
mov dword [esi + 0x10], esp
mov dword [esi + 0x44], esp
sub esp, 0xc
mov eax, esp
mov dword [esi + 0x50], eax
mov dword [esi + 0x40], esp
add eax, 8
mov dword [esi + 0x54], eax
sub esp, 0xc
mov edi, esp
push 4
call fcn.1003d090
add esp, 4
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
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x114]
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]
mov eax, dword [esi + 0x54]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0x40]
push eax
push eax
mov ebx, esp
mov dword [esi + 0x54], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1c0]
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 + 0x54]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0xa0]
mov ecx, ebx
call fcn.100b98da
mov esp, dword [esi + 0x40]
mov edi, dword [esi + 0xac]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0xec], edi
mov dword [esi + 0xe8], eax
lea ebx, [esi + 0xe8]
mov ecx, ebx
call fcn.100b9ddc
mov ecx, dword [esi + 0x50]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
call fcn.10047b5e
add esp, 0xc
mov esp, dword [esi + 0x44]
lea edi, [esi + 0x160]
mov ecx, edi
call fcn.100446fc
mov eax, 0x10211324
mov dword [esi + 0x160], eax
xor eax, eax
inc eax
mov dword [esi + 0x16c], eax
mov ecx, edi
mov eax, dword [esi + 0x10]
push dword [eax]
call fcn.10044766
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xa0]
call fcn.10048de8
xor eax, eax
dec eax
mov dword [esi + 0xf0], eax
xor ecx, ecx
mov dword [esi + 0xe8], ecx
mov dword [esi + 0xec], ecx
xor edx, edx
mov byte [esi + 0xf0], 1
mov dword [esi + 0x1b4], eax
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1bc], eax
lea ecx, [esi + 0x1b4]
push edx
call fcn.10045d2e
mov ecx, ebx
call fcn.10046a3c
test al, al
je 0x1018a8df
mov dword [esi + 0x10], esp
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
call fcn.1003d090
add esp, 4
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x44]
mov dword [edi], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0xc]
mov ecx, ebx
call fcn.10046a76
mov esp, dword [esi + 0x10]
test al, al
je 0x1018a8df
mov dword [esi + 0x10], esp
xor ebx, ebx
dec ebx
mov dword [esi + 0x1a8], ebx
mov dword [esi + 0x1ac], ebx
mov dword [esi + 0x1b0], ebx
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1b4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x150]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x44]
mov dword [edi], eax
call fcn.10044d3c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x1a8]
call fcn.10045d5c
mov esp, dword [esi + 0x10]
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xa0], xmm0
push eax
mov dword [esi + 0x44], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov edi, esp
mov dword [esi + 0x50], esp
lea eax, [edi + 4]
mov dword [esi + 0x40], eax
sub esp, 0xc
mov ebx, esp
push 0
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x40]
mov dword [ebx], eax
call fcn.10045f68
add esp, 0xc
mov esp, dword [esi + 0x50]
lea eax, [edi + 8]
mov dword [esi + 0x40], eax
push eax
sub esp, 8
mov ebx, esp
push dword [esi + 0x6c]
call fcn.1003d090
add esp, 4
mov dword [ebx + 8], eax
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x40]
mov dword [ebx], eax
call fcn.10045f2e
add esp, 0xc
mov esp, dword [esi + 0x50]
mov eax, dword [esi + 0x44]
mov dword [edi], eax
call fcn.10044926
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xa0]
call fcn.10044048
mov esp, dword [esi + 0x10]
mov eax, dword [esi + 0xb4]
cmp eax, 2
mov edi, dword [ebp + 0xc]
lea ebx, [esi + 0x180]
jg 0x1018a85c
test eax, eax
jne 0x1018a84c
lea eax, [esi + 0x160]
push eax
lea eax, [esi + 0x170]
push eax
push ebx
push edi
call fcn.1018abfe
add esp, 0x10
mov eax, dword [esi + 0xb4]
lea ecx, [eax + 1]
mov dword [esi + 0xb4], ecx
cmp eax, 2
mov eax, ecx
jl 0x1018a82a
lea edi, [esi + 0xa0]
mov ecx, edi
call fcn.100440c8
push 4
lea eax, [esi + 0x160]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x64]
lea eax, [esi + 0x170]
push eax
push edi
call fcn.10047bae
add esp, 0xc
push dword [esi + 0x68]
push ebx
push edi
call fcn.10047bae
add esp, 0xc
lea ecx, [esi + 0x1a8]
call fcn.10048de8
push 0
lea eax, [esi + 0x1b4]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0xe8]
call fcn.1003c692
add esp, 4
push dword [esi + 0xec]
call fcn.1003c4f4
add esp, 4
lea ebx, [esi + 0xe8]
jmp 0x1018a6a6
lea ecx, [esi + 0x1b4]
call fcn.10048de8
lea ecx, [esi + 0x160]
call fcn.10048de8
lea ecx, [esi + 0x170]
call fcn.10048de8
lea ecx, [esi + 0x180]
call fcn.10048de8
mov eax, dword [esi + 0xd4]
lea ecx, [eax + 1]
mov dword [esi + 0xd4], ecx
cmp eax, 2
mov eax, ecx
jl 0x1018a325
lea edi, [esi + 0xc0]
mov ecx, edi
call fcn.100440c8
lea ecx, [esi + 0x104]
call fcn.10048de8
push 0
lea eax, [esi + 0x114]
push eax
push edi
call fcn.1003f6e9
add esp, 0xc
push dword [esi + 0x124]
call fcn.1003c692
add esp, 4
push dword [esi + 0x128]
call fcn.1003c4f4
add esp, 4
lea ecx, [esi + 0x124]
jmp 0x1018a1a5
lea ecx, [esi + 0x114]
call fcn.10048de8
lea ecx, [esi + 0x140]
call fcn.10048de8
lea ecx, [esi + 0x150]
call fcn.10048de8
mov edi, dword [ebp + 8]
lea ecx, [esi + 0x1c0]
call fcn.10048de8
lea ecx, [esi + 0x1d0]
call fcn.10048de8
lea ecx, [esi + 0x1e0]
call fcn.10048de8
push str.FrameBuffer
push edi
lea eax, [esi + 0x1f0]
push eax
call fcn.100b9956
add esp, 0xc
mov dword [esi + 0x1f0], 0x10219294
mov ecx, dword [esi + 0x1f4]
test ecx, ecx
je 0x1018a9ea
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x1f8]
test eax, eax
je 0x1018aa03
mov dword [esi + 0x1fc], eax
push eax
call fcn.101d75d9
add esp, 4
mov ecx, dword [esi + 0x208]
xor ecx, ebp
call fcn.101d7611
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret