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

Disassembly:
sub esp, 0x3e8
push ebx
push ebp
mov ebp, dword [esp + 0x3f4]
push esi
mov esi, dword [esp + 0x3fc]
push edi
mov edi, dword [esp + 0x404]
lea ecx, [esp + 0x5c]
mov ebx, eax
call fcn.001fa520
lea ecx, [esp + 0x190]
call fcn.001f6f80
mov eax, ebx
call fcn.001f8610
mov eax, dword [esp + 0x408]
mov dword [eax], 0
mov ecx, dword [edi + 0x10]
mov dword [ebx + 0x10], ecx
mov edx, dword [edi + 0xa0]
mov dword [ebx + 0xa0], edx
mov al, byte [edi + 0xa4]
mov byte [ebx + 0xa4], al
mov edi, esi
mov eax, edx
call fcn.001fdae0
or ecx, 0xffffffff
mov dword [ebx + 0xa0], eax
xor eax, eax
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x404]
mov dword [ebx + 0x58], eax
mov edi, dword [ecx + 8]
cmp edi, eax
mov dword [esp + 0x24], eax
je 0x1fdd33
lea ecx, [ecx]
movsx eax, word [edi + 4]
lea esi, [eax + eax*4]
add esi, esi
add esi, esi
test byte [esi + 0x428dec], 4
je 0x1fdce7
lea edx, [esp + 0x14c]
push edx
call fcn.0018e890
test eax, eax
je 0x1fdce7
mov al, byte [0x3f9e5a]
push eax
mov eax, dword [esp + 0x404]
call fcn.00206f60
mov cl, byte [edi + 6]
mov edx, 1
shl edx, cl
mov ecx, dword [edi + 0x20]
sar ecx, 8
sub ecx, 4
test edx, eax
je 0x1fdcdb
mov eax, 1
shl eax, cl
or dword [esp + 0x24], eax
jmp 0x1fdd1e
mov edx, 1
shl edx, cl
or dword [ebx + 0x58], edx
jmp 0x1fdd1e
mov esi, dword [esi + 0x428de8]
test esi, esi
jbe 0x1fdd1e
lea edx, [edi + 0x20]
cmp byte [edx], 0
jne 0x1fdd16
mov eax, dword [edx]
sar eax, 8
cmp eax, 4
jl 0x1fdd16
cmp eax, 0xb
jg 0x1fdd16
lea ecx, [eax - 4]
mov eax, 1
shl eax, cl
or dword [esp + 0x24], eax
add edx, 0x10
sub esi, 1
jne 0x1fdcf4
mov edi, dword [edi + 0xc4]
test edi, edi
jne 0x1fdc80
mov esi, dword [esp + 0x400]
mov cl, byte [0x3f9e5e]
mov eax, esi
push ecx
call fcn.00206f70
or eax, dword [esp + 0x24]
xor edx, edx
not eax
and dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], edx
mov dword [ebx + 0x60], edx
mov dword [ebx + 0x64], edx
mov dword [ebx + 0x68], edx
mov dword [ebx + 0x6c], edx
mov dword [ebx + 0x70], edx
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], edx
mov dword [ebx + 0x7c], edx
mov dword [ebx + 0x80], edx
mov dword [ebx + 0x84], edx
mov dword [ebx + 0x88], edx
mov dword [ebx + 0x8c], edx
mov dword [ebx + 0x90], edx
mov dword [ebx + 0x94], edx
mov dword [ebx + 0x98], edx
test byte [ebx + 0x58], 1
je 0x1fdda3
mov eax, dword [esp + 0x14c]
or dword [ebx + eax*4 + 0x5c], 1
test byte [ebx + 0x58], 2
je 0x1fddb5
mov eax, dword [esp + 0x150]
or dword [ebx + eax*4 + 0x5c], 2
test byte [ebx + 0x58], 4
je 0x1fddc7
mov eax, dword [esp + 0x154]
or dword [ebx + eax*4 + 0x5c], 4
test byte [ebx + 0x58], 8
je 0x1fddd9
mov eax, dword [esp + 0x158]
or dword [ebx + eax*4 + 0x5c], 8
test byte [ebx + 0x58], 0x10
je 0x1fddeb
mov eax, dword [esp + 0x15c]
or dword [ebx + eax*4 + 0x5c], 0x10
test byte [ebx + 0x58], 0x20
je 0x1fddfd
mov eax, dword [esp + 0x160]
or dword [ebx + eax*4 + 0x5c], 0x20
mov ecx, 0x40
test byte [ebx + 0x58], cl
je 0x1fde12
mov eax, dword [esp + 0x164]
or dword [ebx + eax*4 + 0x5c], ecx
mov ecx, 0x80
test byte [ebx + 0x58], cl
je 0x1fde27
mov eax, dword [esp + 0x168]
or dword [ebx + eax*4 + 0x5c], ecx
mov al, byte [0x3f9e62]
push eax
mov eax, esi
call fcn.00206f80
mov cl, byte [0x3f9e5b]
mov dword [esp + 0x138], eax
mov eax, esi
push ecx
call fcn.00206f90
mov dl, byte [0x3f9e51]
mov dword [esp + 0x174], eax
mov eax, esi
push edx
call fcn.00206fa0
mov dword [esp + 0x178], eax
mov al, byte [0x3f9e58]
push eax
mov eax, esi
call fcn.0015d620
mov cl, byte [0x3f9e6e]
xor edi, edi
mov dword [esp + 0x13c], eax
mov eax, esi
mov dword [esp + 0x148], edi
mov dword [esp + 0x144], edi
mov dword [esp + 0x134], edi
push ecx
mov dword [esp + 0x134], edi
mov dword [esp + 0x3c], edi
mov byte [esp + 0x38], 0
call fcn.00164cd0
cmp eax, 4
je 0x1fdf57
mov dl, byte [0x3f9e6e]
mov eax, esi
push edx
call fcn.00164cd0
cmp eax, 2
jne 0x1fdf07
mov al, byte [0x3f9e5f]
push eax
mov eax, esi
call fcn.0015e270
mov cl, byte [0x3f9e53]
mov dword [esp + 0x134], eax
mov eax, esi
push ecx
call fcn.00206ee0
mov dl, byte [0x3f9e64]
mov dword [esp + 0x130], eax
mov eax, esi
push edx
call fcn.00206fb0
mov dword [esp + 0x38], eax
jmp 0x1fdf57
mov al, byte [0x3f9e6e]
push eax
mov eax, esi
call fcn.00164cd0
cmp eax, 1
jne 0x1fdf57
mov cl, byte [0x3f9e61]
mov eax, esi
push ecx
call fcn.00206fc0
mov dl, byte [0x3f9e60]
mov dword [esp + 0x148], eax
mov eax, esi
push edx
call fcn.00206fd0
mov dword [esp + 0x144], eax
mov al, byte [0x3f9e53]
push eax
mov eax, esi
call fcn.00206ee0
mov dword [esp + 0x130], eax
mov cl, byte [0x3f9e56]
mov eax, esi
push ecx
call fcn.00206fe0
mov dl, byte [0x3f9e54]
mov dword [esp + 0x170], eax
mov eax, esi
push edx
call fcn.00206ff0
mov dword [esp + 0x16c], eax
mov al, byte [0x3f9e55]
push eax
mov eax, esi
call fcn.0018fac0
mov esi, dword [0x4e73e0]
mov dword [esp + 0x17c], eax
mov eax, dword [esi + 0x2384]
test al, 1
mov byte [esp + 0x2b], 1
je 0x1fe0e6
test ah, 0x40
je 0x1fe0e6
test eax, 0x800000
je 0x1fdfc8
mov byte [esp + 0x2b], 1
jmp 0x1fe0e6
test ah, ah
jns 0x1fe0e1
mov ecx, dword [esp + 0x404]
mov edx, dword [ecx + 8]
xor edi, edi
cmp edx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], edi
je 0x1fe03b
lea esp, [esp]
movsx eax, word [edx + 4]
lea eax, [eax + eax*4]
test byte [eax*4 + 0x428dec], 4
je 0x1fe02e
mov cl, byte [edx + 6]
mov eax, dword [esp + 0x134]
add ecx, ecx
shr eax, cl
and eax, 3
jne 0x1fe01b
add dword [esp + 0x3c], 1
jmp 0x1fe031
cmp eax, 2
jne 0x1fe027
add dword [esp + 0x40], 1
jmp 0x1fe031
add dword [esp + 0x48], 1
jmp 0x1fe031
add edi, 1
mov edx, dword [edx + 0xc4]
test edx, edx
jne 0x1fdff0
movsx ecx, byte [esi + 0x5c09]
mov edx, dword [esp + 0x40]
test edx, edx
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fild dword [esp + 0x40]
jge 0x1fe05c
fadd dword [0x41bc68]
movsx eax, byte [esi + 0x5c0a]
fmulp st(1)
mov ecx, dword [esp + 0x48]
test ecx, ecx
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fild dword [esp + 0x48]
jge 0x1fe07f
fadd dword [0x41bc68]
movsx edx, byte [esi + 0x5c0b]
fmulp st(1)
mov eax, dword [esp + 0x3c]
test eax, eax
faddp st(1)
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fild dword [esp + 0x3c]
jge 0x1fe0a4
fadd dword [0x41bc68]
test edi, edi
fmulp st(1)
movsx ecx, byte [esi + 0x5c08]
mov dword [esp + 0x30], ecx
faddp st(1)
mov dword [esp + 0x18], edi
fild dword [esp + 0x30]
fild dword [esp + 0x18]
jge 0x1fe0c9
fadd dword [0x41bc68]
fmulp st(1)
xor edi, edi
mov byte [esp + 0x2b], 1
faddp st(1)
fcomp dword [0x41bc54]
fnstsw ax
test ah, 0x41
je 0x1fe0e6
mov byte [esp + 0x2b], 0
cmp dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x54], edi
mov byte [esp + 0x23], 1
je 0x1fe105
cmp dword [esi + 0x5b1c], 0x8416720
jne 0x1fe123
cmp dword [esi + 0x5b1c], 0x47814150
jne 0x1fe201
cmp dword [esp + 0x418], 0
je 0x1fe201
mov edx, dword [esp + 0x404]
mov eax, dword [edx + 8]
test eax, eax
je 0x1fe201
cmp byte [eax + 0x20], 0
jne 0x1fe19d
mov esi, dword [eax + 0x20]
sar esi, 8
cmp esi, 4
jl 0x1fe19d
cmp esi, 0xd
jg 0x1fe19d
jne 0x1fe152
mov byte [esp + 0x23], 0
movsx ecx, word [eax + 4]
lea ecx, [ecx + ecx*4]
mov edx, dword [ecx*4 + 0x428dec]
test dl, 4
je 0x1fe18f
mov cl, byte [eax + 6]
mov edi, 1
shl edi, cl
mov ecx, dword [esp + 0x138]
test ecx, edi
jne 0x1fe19d
test dl, 8
jne 0x1fe19d
lea ecx, [esi - 4]
mov edx, 1
shl edx, cl
or dword [esp + 0x54], edx
jmp 0x1fe19d
lea ecx, [esi - 4]
mov edx, 1
shl edx, cl
or dword [esp + 0x2c], edx
cmp byte [eax + 0x30], 0
jne 0x1fe1c8
mov edi, dword [eax + 0x30]
sar edi, 8
cmp edi, 4
jl 0x1fe1c8
cmp edi, 0xd
jg 0x1fe1c8
jne 0x1fe1ba
mov byte [esp + 0x23], 0
lea ecx, [edi - 4]
mov edx, 1
shl edx, cl
or dword [esp + 0x2c], edx
cmp byte [eax + 0x40], 0
jne 0x1fe1f3
mov edi, dword [eax + 0x40]
sar edi, 8
cmp edi, 4
jl 0x1fe1f3
cmp edi, 0xd
jg 0x1fe1f3
jne 0x1fe1e5
mov byte [esp + 0x23], 0
lea ecx, [edi - 4]
mov edx, 1
shl edx, cl
or dword [esp + 0x2c], edx
mov eax, dword [eax + 0xc4]
test eax, eax
jne 0x1fe135
xor edx, edx
cmp byte [esp + 0x23], dl
mov dword [esp + 0x140], edx
je 0x1fe58e
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
or eax, ecx
cmp ecx, edx
mov dword [esp + 0x140], eax
je 0x1fe2fa
call fcn.00153e20
mov dword [esp + 0x30], eax
call fcn.00153e20
mov dword [esp + 0x38], eax
push 0
mov ecx, 0xd
lea eax, [esp + 0x1c]
call fcn.0013dc60
mov eax, dword [eax]
push eax
lea eax, [esp + 0x2dc]
call fcn.00134250
push 0xff
sub esp, 0x20
mov esi, eax
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x18]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov esi, dword [esp + 0x30]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x78]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x1a
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
mov byte [ebx + 0xa5], 1
mov ecx, dword [esp + 0x2c]
not ecx
and dword [esp + 0x54], ecx
mov eax, 4
lea edx, [ebp + 0x6c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], edx
lea ecx, [eax - 4]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x2c]
test ecx, eax
je 0x1fe3ea
call fcn.00153e20
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
push 0
lea eax, [esp + 0x1c]
call fcn.0013dc60
mov edx, dword [eax]
push edx
lea eax, [esp + 0x2dc]
call fcn.00134250
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x38], eax
push 2
lea eax, [esp + 0x18]
call fcn.0013dc60
mov eax, dword [eax]
push eax
lea eax, [esp + 0x31c]
call fcn.00134250
push 0
sub esp, 0x20
mov esi, eax
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x14]
call fcn.0013dc60
mov esi, dword [esp + 0x30]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x78]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
mov edx, eax
mov edx, dword [edx]
sub esp, 0x10
mov eax, esp
mov ecx, 8
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.00134640
push 1
push 2
push ebx
call fcn.001f8910
jmp 0x1fe573
mov ecx, dword [esp + 0x54]
test ecx, eax
je 0x1fe573
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
push 0
lea eax, [esp + 0x44]
call fcn.0013dc60
mov edx, dword [eax]
push edx
lea eax, [esp + 0x33c]
call fcn.00134250
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 2
lea eax, [esp + 0x4c]
call fcn.0013dc60
push 7
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x70]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x98]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
call fcn.00153e20
mov dword [esp + 0x30], eax
call fcn.00153e20
mov dword [esp + 0x38], eax
push 0
mov ecx, 0xd
lea eax, [esp + 0x5c]
call fcn.0013dc60
mov ecx, dword [eax]
push ecx
lea eax, [esp + 0x2fc]
call fcn.00134250
push 0xff
sub esp, 0x20
mov esi, eax
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x50]
call fcn.0013dc60
mov ecx, eax
push 8
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov esi, dword [esp + 0x30]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x78]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
mov byte [ebx + 0xa5], 1
mov eax, dword [esp + 0x3c]
add dword [esp + 0x24], 4
add eax, 1
cmp eax, 0xd
mov dword [esp + 0x3c], eax
jle 0x1fe314
xor edx, edx
xor eax, eax
cmp dword [esp + 0x13c], edx
mov dword [esp + 0x50], edx
setne al
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], edx
add eax, 1
cmp eax, edx
mov dword [esp + 0x30], eax
jle 0x2011de
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
add eax, eax
add ecx, 1
cmp ecx, eax
jle 0x1fe5c8
mov eax, ecx
cmp dword [esp + 0x3c], 0
jne 0x1fe5e1
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x58], 0
jmp 0x1fe5ec
mov dword [esp + 0x48], eax
add eax, 1
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x404]
mov eax, dword [ecx + 8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x201096
cmp dword [esp + 0x30], 1
mov esi, dword [esp + 0x38]
mov ecx, 0x35
lea edi, [esp + 0x5c]
rep movsd dword es:[edi], dword [esi]
jle 0x1fe9ca
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x1fe6df
mov eax, dword [esp + 0x7c]
cmp al, 2
mov esi, dword [esp + 0x50]
jne 0x1fe643
mov ecx, eax
sar ecx, 8
cmp esi, ecx
jg 0x1fe643
mov esi, ecx
mov dword [esp + 0x50], esi
cmp al, 3
mov edx, dword [esp + 0x4c]
jne 0x1fe658
sar eax, 8
cmp edx, eax
jg 0x1fe658
mov edx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x8c]
cmp al, 2
jne 0x1fe672
mov ecx, eax
sar ecx, 8
cmp esi, ecx
jg 0x1fe672
mov esi, ecx
mov dword [esp + 0x50], esi
cmp al, 3
jne 0x1fe683
sar eax, 8
cmp edx, eax
jg 0x1fe683
mov edx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x9c]
cmp al, 2
jne 0x1fe69d
mov ecx, eax
sar ecx, 8
cmp esi, ecx
jg 0x1fe69d
mov esi, ecx
mov dword [esp + 0x50], esi
cmp al, 3
jne 0x1fe6ae
sar eax, 8
cmp edx, eax
jg 0x1fe6ae
mov edx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x6c]
cmp al, 2
jne 0x1fe6c3
mov ecx, eax
sar ecx, 8
cmp esi, ecx
jg 0x1fe6c3
mov dword [esp + 0x50], ecx
cmp al, 3
jne 0x1fe7b7
sar eax, 8
cmp edx, eax
jg 0x1fe7b7
mov dword [esp + 0x4c], eax
jmp 0x1fe7b7
mov ecx, dword [esp + 0x7c]
cmp cl, 2
mov eax, dword [esp + 0x58]
jne 0x1fe6f7
mov edx, eax
shl edx, 8
add ecx, edx
mov dword [esp + 0x7c], ecx
cmp cl, 3
jne 0x1fe713
mov edx, ecx
xor dl, dl
mov esi, eax
shl esi, 9
and ecx, 0xff
add edx, esi
xor edx, ecx
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x8c]
cmp cl, 2
jne 0x1fe72d
mov edx, eax
shl edx, 8
add ecx, edx
mov dword [esp + 0x8c], ecx
cmp cl, 3
jne 0x1fe750
mov esi, ecx
mov edx, eax
shl edx, 9
and esi, 0xffffff00
add edx, esi
and ecx, 0xff
xor edx, ecx
mov dword [esp + 0x8c], edx
mov ecx, dword [esp + 0x9c]
cmp cl, 2
jne 0x1fe76a
mov edx, eax
shl edx, 8
add ecx, edx
mov dword [esp + 0x9c], ecx
cmp cl, 3
jne 0x1fe789
mov edx, ecx
xor dl, dl
mov esi, eax
shl esi, 9
and ecx, 0xff
add edx, esi
xor edx, ecx
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x6c]
cmp cl, 2
jne 0x1fe79d
mov edx, eax
shl edx, 8
add ecx, edx
mov dword [esp + 0x6c], ecx
cmp cl, 3
jne 0x1fe7b7
mov edx, ecx
xor dl, dl
shl eax, 9
and ecx, 0xff
add edx, eax
xor edx, ecx
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x13c], 0
je 0x1fe9ca
cmp edi, 1
jne 0x1fe9ca
lea ecx, [esp + 0x7c]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], 3
mov edi, edi
cmp byte [ecx], 0
jne 0x1fe9b8
mov eax, dword [ecx]
sar eax, 8
cmp eax, 4
jl 0x1fe9b8
cmp eax, 0xd
jg 0x1fe9b8
push 4
mov ecx, 0x80010
lea eax, [esp + 0x210]
call fcn.0013dc60
push 0xff
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov esi, eax
mov ecx, 8
lea edi, [esp + 0x358]
rep movsd dword es:[edi], dword [esi]
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
push 2
lea eax, [esp + 0x29c]
call fcn.0013dc60
mov edx, dword [esp + 0x24]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x80]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [edx]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
call fcn.001f7000
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
push 1
push 1
push ebx
call fcn.001f8910
call fcn.00153e20
mov edi, dword [esp + 0x48]
mov esi, eax
push 2
mov ecx, edi
lea eax, [esp + 0x2a4]
call fcn.0013dc60
mov dword [esp + 0x10], eax
push 2
mov ecx, edi
lea eax, [esp + 0x2ac]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov dword [esp + 0x40], eax
sub esp, 0x20
mov ecx, 8
mov edx, dword [esp + 0x30]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov edi, esp
mov ecx, 8
lea esi, [esp + 0x398]
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov eax, esp
push ecx
call fcn.00134250
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 3
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
mov ecx, dword [esp + 0x48]
push 2
lea eax, [esp + 0x2d4]
call fcn.0013dc60
mov ecx, dword [eax]
push ecx
lea eax, [esp + 0x184]
call fcn.00207200
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x184]
mov dword [edx], eax
mov eax, dword [esp + 0x188]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x18c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov ecx, edx
add ecx, 0x10
sub dword [esp + 0x1c], 1
mov dword [esp + 0x24], ecx
jne 0x1fe7e0
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x170]
mov ecx, esi
shl ecx, 8
sar ecx, 0x18
add ecx, ecx
shr edi, cl
lea ecx, [esp + 0x44]
mov byte [esp + 0x23], 0
mov byte [esp + 0x35], 0
and edi, 3
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], 0
mov dword [esp + 0x40], edi
call fcn.00174c90
cmp dword [esp + 0x140], 0
je 0x1fead1
lea edi, [esp + 0x7c]
mov dword [esp + 0x1c], 3
nop
cmp byte [edi], 0
jne 0x1feabf
mov ecx, dword [edi]
sar ecx, 8
cmp ecx, 4
jl 0x1feabf
cmp ecx, 0xd
jg 0x1feabf
add ecx, 0xfffffffc
mov eax, 1
shl eax, cl
test dword [esp + 0x140], eax
mov dword [esp + 0x10], eax
je 0x1fea75
mov ecx, dword [ebp + ecx*4 + 0x6c]
push 2
lea eax, [esp + 0x2b8]
call fcn.0013dc60
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
mov dword [edi], edx
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
test ecx, eax
je 0x1feabf
cmp si, 0x17
je 0x1feaa0
cmp si, 0x46
je 0x1feaa0
cmp si, 0x33
je 0x1fea95
cmp si, 0x47
jne 0x1feaad
and esi, 0xffff0034
or esi, 0x34
jmp 0x1feaa9
and esi, 0xffff0018
or esi, 0x18
mov dword [esp + 0x60], esi
cmp word [edi + 0xc], 0xa4
jne 0x1feabf
mov word [edi + 0xc], 0xe4
mov esi, dword [esp + 0x60]
add edi, 0x10
sub dword [esp + 0x1c], 1
jne 0x1fea20
mov edi, dword [esp + 0x40]
movsx eax, si
lea edx, [eax + eax*4]
test byte [edx*4 + 0x428dec], 4
je 0x1fff2e
mov eax, dword [esp + 0x7c]
sar eax, 8
sub eax, 4
cmp si, 0x46
mov dword [esp + 0x14], eax
jne 0x1feb26
mov ecx, esi
shl ecx, 8
sar ecx, 0x18
mov eax, 1
shl eax, cl
and eax, dword [esp + 0x138]
neg eax
sbb eax, eax
neg eax
add eax, 0x17
xor eax, esi
and eax, 0xffff
xor esi, eax
jmp 0x1ff3cd
cmp si, 0x47
jne 0x1ff3d1
mov al, byte [0x3f9e6e]
mov ecx, esi
shl ecx, 8
sar ecx, 0x18
mov edx, 1
shl edx, cl
push eax
mov eax, dword [esp + 0x404]
and edx, dword [esp + 0x13c]
neg edx
sbb edx, edx
neg edx
add edx, 0x33
xor edx, esi
and edx, 0xffff
xor esi, edx
mov dword [esp + 0x64], esi
call fcn.00164cd0
cmp eax, 2
jne 0x1fef13
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x94]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x98]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea eax, [esp + 0x308]
call fcn.001f7000
cmp word [esp + 0x60], 0x34
mov ecx, 8
lea esi, [esp + 0x2f8]
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
jne 0x1fecca
call fcn.00153e20
mov edx, dword [esp + 0x7c]
push 0xff
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xb4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x1c0]
call fcn.0013dc60
mov edx, dword [esp + 0x7c]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x7c], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xf0]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xf4]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xf8]
mov dword [ecx + 0xc], edx
call fcn.001f7000
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
push 1
push 0x3a
push ebx
call fcn.001f8910
mov ecx, dword [ebp + 0x58]
push 2
lea eax, [esp + 0x260]
call fcn.0013dc60
mov eax, dword [eax]
push eax
lea eax, [esp + 0x33c]
call fcn.00134250
mov ecx, 8
lea esi, [esp + 0x338]
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
push 0
sub esp, 0x20
mov edi, esp
mov ecx, 8
lea esi, [esp + 0x1b4]
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov edx, dword [esp + 0x9c]
push 0x44
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x1c8]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x7c], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xec]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x100]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x104]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x108]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x48
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
push 0x55
sub esp, 0x20
mov edi, esp
mov ecx, 8
lea esi, [esp + 0x1b4]
rep movsd dword es:[edi], dword [esi]
call fcn.00134540
mov edx, dword [esp + 0x9c]
push 0xee
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2b0]
call fcn.0013dc60
push 2
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x7c], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xec]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x100]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x104]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x108]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x48
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
lea eax, [esp + 0x1cc]
jmp 0x1ff3ac
mov dl, byte [0x3f9e6e]
mov eax, dword [esp + 0x400]
push edx
call fcn.00164cd0
cmp eax, 1
jne 0x1ff3d1
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x94]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x98]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x328]
call fcn.001f7000
mov ecx, 8
lea esi, [esp + 0x318]
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x190]
sar eax, 8
cmp eax, 4
jl 0x1fef9c
cmp eax, 0xb
jg 0x1fef9c
lea ecx, [eax - 4]
mov eax, 1
shl eax, cl
not eax
and dword [ebx + 0x58], eax
cmp word [esp + 0x60], 0x34
jne 0x1ff15a
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov edx, dword [esp + 0x7c]
push 0xff
sub esp, 0x20
mov dword [esp + 0x34], eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xb4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x268]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x1a
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
call fcn.00153e20
mov ecx, dword [ebp + 0x58]
mov esi, eax
push 2
lea eax, [esp + 0x1d8]
call fcn.0013dc60
push 0
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2c0]
call fcn.0013dc60
mov dword [esp + 0x1c], eax
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xdc]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xf0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
push 2
push ebx
call fcn.001f8910
mov ecx, dword [ebp + 0x58]
push 2
lea eax, [esp + 0x1e0]
call fcn.0013dc60
mov edx, dword [eax]
push edx
lea eax, [esp + 0x2dc]
call fcn.00134250
mov ecx, 8
lea esi, [esp + 0x2d8]
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x9c]
push 0x88
sub esp, 0x20
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov edx, dword [esp + 0x8c]
push 0
sub esp, 0x20
mov dword [esp + 0x34], eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x270]
call fcn.0013dc60
push 3
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
lea esi, [esp + 0x1d0]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 4
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
push 2
mov ecx, dword [ebp + 0x54]
lea eax, [esp + 0x1e8]
call fcn.0013dc60
mov edx, dword [esp + 0x9c]
push 0xdd
sub esp, 0x20
mov edi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov edx, dword [esp + 0x8c]
push 0x55
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2c8]
call fcn.0013dc60
push 3
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov edx, dword [edi]
sub esp, 0x20
mov dword [esp + 0x3c], eax
mov eax, esp
push edx
call fcn.00134250
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x70]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 4
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov edi, esp
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
lea eax, [esp + 0x1ec]
mov ecx, dword [ebp + 0x54]
push 2
call fcn.0013dc60
mov esi, dword [esp + 0x60]
mov ecx, dword [eax]
mov edi, dword [esp + 0x40]
and esi, 0xffff0017
mov dword [esp + 0x7c], ecx
or esi, 0x17
mov dword [esp + 0x60], esi
test edi, edi
je 0x1ff3da
mov byte [esp + 0x35], 1
mov edx, dword [esp + 0x148]
mov ecx, esi
shl ecx, 8
sar ecx, 0x18
mov edi, 1
shl edi, cl
test edx, edi
je 0x1ff3f9
mov byte [esp + 0x23], 1
mov eax, dword [esp + 0x130]
test eax, edi
je 0x1ff409
mov byte [esp + 0x36], 1
mov edx, dword [esp + 0x178]
test edx, edi
je 0x1ff419
mov byte [esp + 0x37], 1
mov edx, dword [esp + 0x64]
mov eax, edx
and eax, 0xff00
cmp eax, 0xf00
jne 0x1ff468
mov eax, dword [esp + 0x17c]
add ecx, ecx
shr eax, cl
and eax, 3
call fcn.0018fa90
shl eax, 8
xor eax, edx
and eax, 0xff00
xor edx, eax
mov ecx, edx
and ecx, 0xff00
cmp ecx, 0xf00
mov dword [esp + 0x64], edx
jne 0x1ff468
and dh, 1
or dh, 1
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x16c]
test eax, edi
je 0x1ff4ae
mov ecx, edx
and ecx, 0xff00
cmp ecx, 0x100
jne 0x1ff4ae
and dh, 6
or dh, 6
cmp si, 0x18
mov dword [esp + 0x64], edx
je 0x1ff4ae
mov eax, dword [esp + 0x88]
cmp ax, 0x54
jne 0x1ff4ae
and eax, 0xffff00a4
or al, 0xa4
mov dword [esp + 0x88], eax
cmp byte [esp + 0x23], 0
jne 0x1ff4fd
cmp byte [esp + 0x35], 0
jne 0x1ff4fd
cmp byte [esp + 0x36], 0
je 0x1ff4e3
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
movsx eax, cl
xor cl, cl
mov dword [esp + 0x2c], eax
and eax, 1
mov dword [esp + 0x44], edx
or eax, ecx
mov dword [esp + 0x78], eax
jmp 0x1ff52f
cmp byte [esp + 0x37], 0
je 0x1ff52f
movsx eax, byte [esp + 0x78]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x44], ecx
jmp 0x1ff52f
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
movsx edx, al
and al, 0xf
or al, 0xf
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 0x54]
push 2
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x278]
call fcn.0013dc60
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x144]
test eax, edi
je 0x20025c
mov cl, byte [0x3f9e5a]
mov eax, dword [esp + 0x400]
push ecx
call fcn.00206f60
test edi, eax
je 0x1ff8d5
movsx eax, si
lea edx, [eax + eax*4]
test byte [edx*4 + 0x428dec], 8
je 0x1ff7f9
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov edx, dword [esp + 0x7c]
push 0xff
sub esp, 0x20
mov dword [esp + 0x34], eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xb4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x1f8]
call fcn.0013dc60
push 8
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x7c]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x1a
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov esi, eax
push 2
lea eax, [esp + 0x2bc]
call fcn.0013dc60
push 0xff
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x200]
call fcn.0013dc60
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x7c], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xdc]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xf0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
push 2
push ebx
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x280]
call fcn.0013dc60
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x1c], eax
push 2
lea eax, [esp + 0x208]
call fcn.0013dc60
mov edx, dword [esp + 0x1c]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
mov ecx, 8
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov dword [esp + 0x84], eax
mov eax, esp
push ecx
call fcn.00134250
mov edx, dword [esp + 0x84]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
push 0x10
push ebx
call fcn.001f8910
mov esi, dword [esp + 0x60]
movsx eax, si
cmp eax, 0x18
je 0x1ff7e7
cmp eax, 0x2f
je 0x1ff7d5
cmp eax, 0x34
jne 0x1ff8a9
and esi, 0xffff0033
or esi, 0x33
mov dword [esp + 0x60], esi
jmp 0x1ff8a9
and esi, 0xffff002e
or esi, 0x2e
mov dword [esp + 0x60], esi
jmp 0x1ff8a9
and esi, 0xffff0017
or esi, 0x17
mov dword [esp + 0x60], esi
jmp 0x1ff8a9
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2d8]
call fcn.0013dc60
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x7c], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xdc]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xf0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
push 0x10
push ebx
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
mov esi, dword [esp + 0x60]
mov ecx, dword [ebp + 0x54]
push 2
lea eax, [esp + 0x1b4]
call fcn.0013dc60
mov edx, dword [eax]
mov eax, dword [esp + 0x88]
and eax, 0xf9ff00e4
or al, 0xe4
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], eax
cmp si, 0x33
je 0x1ff9db
cmp si, 0x34
je 0x1ff9db
mov eax, dword [esp + 0x7c]
test al, al
jne 0x1ff912
sar eax, 8
cmp eax, 4
jl 0x1ff912
cmp eax, 0xb
jg 0x1ff912
mov ecx, dword [esp + 0x14]
mov edx, 1
shl edx, cl
test dword [ebx + 0x58], edx
jne 0x20025c
shl esi, 8
sar esi, 0x18
add esi, 0x120
mov dword [esp + 0x14], esi
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov esi, eax
push 2
lea eax, [esp + 0x288]
call fcn.0013dc60
sub esp, 0x20
mov edi, esp
mov ecx, 8
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov eax, esp
push ecx
call fcn.001342d0
mov ecx, dword [esp + 0xbc]
sub esp, 0x20
mov eax, esp
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xf0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xf8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
push 2
push ebx
call fcn.001f8910
mov ecx, dword [ebp + 0x54]
push 2
lea eax, [esp + 0x218]
call fcn.0013dc60
mov edx, dword [eax]
mov eax, dword [esp + 0x88]
and eax, 0xf9ff00e4
or al, 0xe4
mov dword [esp + 0x7c], edx
mov dword [esp + 0x88], eax
jmp 0x200258
mov eax, dword [esp + 0x7c]
test al, al
jne 0x1ffa21
sar eax, 8
cmp eax, 4
jl 0x1ffa21
cmp eax, 0xb
jg 0x1ffa21
lea ecx, [eax - 4]
mov edx, 1
shl edx, cl
test dword [ebx + 0x58], edx
je 0x1ffa21
lea eax, [esp + 0xac]
call fcn.00216340
mov ecx, eax
add ecx, 0x20
lea eax, [esp + 0xac]
call fcn.00216610
jmp 0x200258
cmp si, 0x33
jne 0x1ffb32
mov edx, dword [esp + 0x8c]
push 0x44
sub esp, 0x20
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xcc]
and esi, 0xffff0017
or esi, 0x17
mov dword [esp + 0x94], esi
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov edx, dword [esp + 0x7c]
push 0x44
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xb4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x2c4]
call fcn.0013dc60
push 3
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov ecx, dword [esp + 0x9c]
sub esp, 0x20
mov dword [esp + 0x30], eax
mov eax, esp
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xd0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xd4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xd8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov eax, dword [esp + 0x30]
sub esp, 0x20
mov ecx, 8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
jmp 0x1ffde0
and esi, 0xffff0018
or esi, 0x18
mov dword [esp + 0x60], esi
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov edx, dword [esp + 0x7c]
push 0xe4
sub esp, 0x20
mov dword [esp + 0x38], eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xb4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xbc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x220]
call fcn.0013dc60
push 0xf
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x70]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov esi, eax
push 2
lea eax, [esp + 0x290]
call fcn.0013dc60
push 0xff
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x58]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x228]
call fcn.0013dc60
push 3
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [esp + 0x8c]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x100]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x104]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x108]
mov dword [ecx + 0xc], edx
call fcn.001f7000
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 2
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
mov ecx, dword [ebp + 0x58]
push 2
lea eax, [esp + 0x2d0]
call fcn.0013dc60
push 0x44
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov esi, eax
push 2
lea eax, [esp + 0x230]
call fcn.0013dc60
push 0x44
mov ecx, eax
sub esp, 0x20
mov edx, dword [ecx]
mov eax, esp
push edx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x298]
call fcn.0013dc60
push 3
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov ecx, dword [esp + 0x9c]
sub esp, 0x20
mov dword [esp + 0x30], eax
mov eax, esp
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xd0]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xd4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xd8]
mov dword [edx + 0xc], ecx
call fcn.001f7000
mov eax, dword [esp + 0x30]
sub esp, 0x20
mov ecx, 8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
sub esp, 0x20
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x2b
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
lea esi, [esp + 0x11c]
mov ecx, 0x1c
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
mov edi, dword [esp + 0x60]
shl edi, 8
sar edi, 0x18
add edi, 0x120
call fcn.00153e20
push 0x44
sub esp, 0x20
mov esi, eax
mov eax, esp
push edi
call fcn.001342d0
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x238]
call fcn.0013dc60
push 0x44
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2cc]
call fcn.0013dc60
push 3
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 2
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
mov ecx, dword [ebp + 0x54]
push 2
lea eax, [esp + 0x240]
call fcn.0013dc60
mov edx, dword [esp + 0x88]
mov ecx, dword [eax]
and edx, 0xf9ff00e4
or dl, 0xe4
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x88], edx
jmp 0x200258
cmp si, 0x35
jne 0x20018b
mov al, byte [0x3f9e6e]
push eax
mov eax, dword [esp + 0x404]
call fcn.00164cd0
cmp eax, 2
jne 0x20025c
mov edx, dword [esp + 0x9c]
push 0xff
sub esp, 0x20
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov edx, dword [esp + 0x9c]
push 0xaa
sub esp, 0x20
mov esi, eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xdc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov edx, dword [esp + 0x8c]
push 0xaa
sub esp, 0x20
mov dword [esp + 0x38], eax
mov eax, esp
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc8]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx + 0xc], edx
call fcn.001f7000
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x10], eax
push 2
lea eax, [esp + 0x2a0]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
call fcn.001f71e0
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x34]
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esp, 0x20
mov esi, dword [esp + 0x70]
mov edx, dword [eax]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 4
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
sub esp, 0x70
mov edi, esp
mov ecx, 0x1c
lea esi, [esp + 0x11c]
mov eax, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.001f8c90
mov ecx, dword [esp + 0x60]
and ecx, 0xffff0002
or ecx, 2
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0x54]
push 2
lea eax, [esp + 0x248]
call fcn.0013dc60
push 0
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x20
mov eax, esp
push edx
call fcn.00134250
call fcn.00134540
mov ecx, dword [eax]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x90], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x94], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [ebp + 0x54]
push 2
lea eax, [esp + 0x2b4]
mov dword [esp + 0x9c], edx
call fcn.0013dc60
mov eax, dword [eax]
push eax
lea eax, [esp + 0x150]
call fcn.00207200
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x158]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
jmp 0x200258
cmp si, 0x42
jne 0x20019d
cmp byte [esp + 0x7c], 5
je 0x2001b5
jmp 0x20025c
cmp si, 0x41
jne 0x20021e
cmp byte [esp + 0x8c], 5
jne 0x20025c
xor eax, eax
lea ecx, [esp + 0xac]
call fcn.00216360
xor dl, dl
cmp eax, 0x160
jne 0x2001df
mov eax, 3
lea ecx, [esp + 0xac]
call fcn.00216360
mov dl, 1
lea ecx, [eax - 0xf0]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x174]
test ecx, eax
setne al
test dl, dl
je 0x200201
test al, al
sete al
mov ecx, dword [esp + 0x68]
neg al
sbb eax, eax
and eax, 7
shl eax, 0x10
xor eax, ecx
and eax, 0xff0000
xor ecx, eax
mov dword [esp + 0x68], ecx
jmp 0x20025c
cmp si, 0x45
jne 0x20025c
cmp byte [esp + 0x34], 0
jne 0x20025c
mov edx, dword [esp + 0x414]
mov eax, dword [esp + 0x408]
mov ecx, dword [esp + 0x404]
mov esi, dword [esp + 0x400]
push edx
push eax
push ecx
mov edi, ebp
mov eax, ebx
call fcn.00201220
mov byte [esp + 0x34], 1
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x134]
mov ecx, esi
shl ecx, 8
sar ecx, 0x18
add ecx, ecx
shr eax, cl
movsx ecx, si
lea edx, [ecx + ecx*4]
and eax, 3
test byte [edx*4 + 0x428dec], 4
je 0x2004a3
test eax, eax
je 0x2004a3
cmp eax, 3
jne 0x20029a
mov edi, 1
jmp 0x2002e1
cmp byte [esp + 0x2b], 0
je 0x2004a3
cmp eax, 1
jne 0x2002c3
mov eax, dword [0x4e73e0]
test byte [eax + 0x2385], 0x10
je 0x2004a3
mov edi, 1
jmp 0x2002e1
cmp eax, 2
jne 0x2004a3
mov ecx, dword [0x4e73e0]
test byte [ecx + 0x2385], 0x20
je 0x2004a3
mov edi, eax
movsx eax, byte [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov esi, dword [ebp + 0x54]
mov dword [esp + 0x24], eax
push 2
mov ecx, esi
lea eax, [esp + 0x250]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], edx
call fcn.0013dc60
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x80]
call fcn.00207240
test eax, eax
push 2
je 0x20032a
mov ecx, dword [ebp + 0x58]
lea eax, [esp + 0x2a8]
jmp 0x200333
mov ecx, esi
lea eax, [esp + 0x258]
call fcn.0013dc60
cmp edi, 2
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
jne 0x2003b0
test byte [esp + 0x24], 1
je 0x200363
mov eax, dword [esp + 0x78]
and al, 1
or al, 1
mov dword [esp + 0x78], eax
lea eax, [esp + 0x5c]
call fcn.001f87b0
test byte [esp + 0x24], 2
je 0x200381
mov ecx, dword [esp + 0x78]
and cl, 2
lea eax, [esp + 0x5c]
or ecx, 2
mov dword [esp + 0x78], ecx
call fcn.001f87b0
test byte [esp + 0x24], 4
je 0x20039f
mov edx, dword [esp + 0x78]
and dl, 4
lea eax, [esp + 0x5c]
or edx, 4
mov dword [esp + 0x78], edx
call fcn.001f87b0
test byte [esp + 0x24], 8
je 0x2003ed
mov eax, dword [esp + 0x78]
and al, 8
or al, 8
jmp 0x2003e0
cmp edi, 1
jne 0x2003ed
test byte [esp + 0x24], 3
je 0x2003d1
mov eax, dword [esp + 0x78]
and al, 3
or al, 3
mov dword [esp + 0x78], eax
lea eax, [esp + 0x5c]
call fcn.001f87b0
test byte [esp + 0x24], 0xc
je 0x2003ed
mov eax, dword [esp + 0x78]
and al, 0xc
or al, 0xc
mov dword [esp + 0x78], eax
lea eax, [esp + 0x5c]
call fcn.001f87b0
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x18], ecx
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
push edx
sub esp, 0x10
mov dword [esp + 0x24], eax
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov edx, dword [esp + 0x18]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x74], eax
mov eax, esp
mov ecx, 8
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.00134250
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40c]
shl ecx, 8
sar ecx, 0x18
mov edx, 1
shl edx, cl
add ecx, ecx
or dword [eax], edx
mov eax, dword [esp + 0x1c]
shl eax, cl
mov ecx, dword [esp + 0x410]
or dword [ecx], eax
jmp 0x2004ac
lea eax, [esp + 0x5c]
call fcn.001f87b0
cmp byte [esp + 0x23], 0
je 0x20056c
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x1b8]
call fcn.0013dc60
push 0xd5
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
push edx
sub esp, 0x10
mov dword [esp + 0x28], eax
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov edx, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [edx + 8], ecx
push ebx
mov dword [edx + 0xc], eax
call fcn.001f8910
mov edx, dword [esp + 0x44]
mov dword [esp + 0x6c], edx
jmp 0x200f9c
cmp byte [esp + 0x35], 0
je 0x200ecc
mov eax, dword [esp + 0x40]
sub eax, 1
je 0x200bcb
sub eax, 1
je 0x200847
sub eax, 1
jne 0x200ebf
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x1bc]
call fcn.0013dc60
push 0x44
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x1c4]
call fcn.0013dc60
push 1
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x29
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x1cc]
call fcn.0013dc60
push 0xee
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x1d4]
call fcn.0013dc60
push 2
mov ecx, eax
sub esp, 0x10
mov edx, dword [ecx]
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x29
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov dword [esp + 0x18], eax
push 5
xor ecx, ecx
lea eax, [esp + 0x1dc]
call fcn.0013dc60
mov ecx, dword [eax]
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
push 0xe4
push ecx
xor cl, cl
xor edx, edx
lea eax, [esp + 0x3fc]
call fcn.00134340
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x1e4]
call fcn.0013dc60
push 0xc
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x38]
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
sub esp, 0x20
mov ecx, 8
mov edi, esp
mov edx, dword [eax]
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
push 0x3f800000
push ebx
call fcn.001f8c70
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x1ec]
call fcn.0013dc60
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
push ecx
sub esp, 0x10
mov dword [esp + 0x28], eax
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
push edx
call fcn.00134250
mov eax, dword [esp + 0x70]
jmp 0x200e9a
mov esi, dword [0x4e73e0]
mov eax, esi
call fcn.0006a0b0
mov ecx, eax
call fcn.000a9740
test al, al
je 0x200914
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x1f4]
call fcn.0013dc60
push 0xc6
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x1fc]
call fcn.0013dc60
push 1
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x2009c6
mov eax, esi
call fcn.0006a0b0
mov ecx, eax
call fcn.000a9730
test al, al
je 0x2009d0
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x204]
call fcn.0013dc60
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x20c]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov edx, dword [esp + 0x14]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov dword [esp + 0x70], eax
mov eax, esp
push ecx
call fcn.00134250
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
push 1
push 0x27
push ebx
call fcn.001f8910
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x214]
call fcn.0013dc60
push 0
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x20
mov eax, esp
push ecx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x21c]
call fcn.0013dc60
push 3
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 0x25
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov dword [esp + 0x18], eax
push 5
xor ecx, ecx
lea eax, [esp + 0x224]
call fcn.0013dc60
mov ecx, dword [eax]
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
push 0xe4
push ecx
xor cl, cl
xor edx, edx
lea eax, [esp + 0x3dc]
call fcn.00134340
mov dword [esp + 0x14], eax
push 2
mov ecx, dword [ebp + 0x54]
lea eax, [esp + 0x22c]
call fcn.0013dc60
push 0xc
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
push 0x3f800000
push ebx
call fcn.001f8c70
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x234]
call fcn.0013dc60
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
push ecx
sub esp, 0x10
mov dword [esp + 0x28], eax
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
push edx
call fcn.00134250
mov eax, dword [esp + 0x70]
jmp 0x200e9a
mov cl, byte [0x3f9e6e]
mov esi, dword [esp + 0x400]
mov eax, esi
push ecx
call fcn.00164cd0
cmp eax, 2
jne 0x200c9a
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x23c]
call fcn.0013dc60
push 0xc6
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x20
mov eax, esp
push edx
call fcn.00134250
call fcn.00134540
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x244]
call fcn.0013dc60
push 1
mov ecx, eax
mov ecx, dword [ecx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x54]
sub esp, 0x20
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
sub esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
jmp 0x200d4d
mov cl, byte [0x3f9e6e]
mov eax, esi
push ecx
call fcn.00164cd0
cmp eax, 1
jne 0x200d57
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x24c]
call fcn.0013dc60
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x254]
call fcn.0013dc60
push 1
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
push edx
call fcn.00134250
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
push 1
push 0x27
push ebx
call fcn.001f8910
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov dword [esp + 0x18], eax
push 5
xor ecx, ecx
lea eax, [esp + 0x25c]
call fcn.0013dc60
mov ecx, dword [eax]
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
push 0xe4
push ecx
xor cl, cl
xor edx, edx
lea eax, [esp + 0x39c]
call fcn.00134340
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x14], eax
push 2
lea eax, [esp + 0x264]
call fcn.0013dc60
push 0xe
mov ecx, eax
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
push 0x3f800000
push ebx
call fcn.001f8c70
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [ebp + 0x54]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x26c]
call fcn.0013dc60
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
push ecx
sub esp, 0x10
mov dword [esp + 0x28], eax
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
sub esp, 0x20
mov dword [esp + 0x70], eax
mov eax, esp
push edx
call fcn.00134250
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 1
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
mov edx, dword [esp + 0x44]
mov dword [esp + 0x6c], edx
jmp 0x200f9c
cmp byte [esp + 0x36], 0
je 0x200fb2
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov dword [esp + 0x18], eax
push 5
xor ecx, ecx
lea eax, [esp + 0x274]
call fcn.0013dc60
mov eax, dword [eax]
push 0
push 0
push 0x160
push 1
push 0
push 0
push 0
push 0xe4
push eax
xor cl, cl
xor edx, edx
lea eax, [esp + 0x3bc]
call fcn.00134340
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
and ecx, 0xe
push ecx
sub esp, 0x10
mov dword [esp + 0x28], eax
mov eax, esp
push edx
call fcn.00134640
call fcn.00134720
mov edx, dword [eax]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x74]
mov edi, esp
sub esp, 0x10
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 0
push 1
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
push 0x3f800000
push ebx
call fcn.001f8c70
mov eax, dword [esp + 0x78]
mov ecx, eax
xor ecx, dword [esp + 0x2c]
and ecx, 0xff
xor eax, ecx
mov dword [esp + 0x78], eax
cmp byte [esp + 0x37], 0
je 0x201080
test byte [esp + 0x2c], 8
je 0x201080
call fcn.00153e20
mov esi, eax
mov eax, dword [esp + 0x60]
mov edx, eax
and edx, 0x30000
shl edx, 8
sar edx, 0x18
mov ecx, dword [edx*4 + 0x4e69dc]
shl eax, 8
sar eax, 0x18
cdq
and edx, 3
add edx, eax
push ecx
sar edx, 2
sub esp, 0x20
add edx, 0x138
mov eax, esp
push edx
call fcn.001342d0
call fcn.00134540
mov ecx, dword [esp + 0x44]
push 8
sub esp, 0x10
mov dword [esp + 0x2c], eax
mov eax, esp
push ecx
call fcn.00134640
call fcn.00134720
mov edx, dword [esp + 0x44]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
sub esp, 0x20
mov dword [esp + 0x74], eax
mov eax, esp
mov ecx, 8
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.00134250
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push 0
push 2
mov dword [ecx + 8], edx
push ebx
mov dword [ecx + 0xc], eax
call fcn.001f8910
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0xc4]
test eax, eax
mov dword [esp + 0x38], eax
jne 0x1fe602
cmp dword [esp + 0x13c], 0
je 0x2011c2
cmp dword [esp + 0x3c], 1
jne 0x2011c2
cmp dword [ebx + 0x10], 0
je 0x20113b
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], eax
push 2
lea eax, [esp + 0x27c]
call fcn.0013dc60
mov dword [esp + 0x14], eax
push 2
mov ecx, 2
lea eax, [esp + 0x284]
call fcn.0013dc60
mov edx, dword [esp + 0x14]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov dword [esp + 0x70], eax
mov eax, esp
push ecx
call fcn.00134250
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 1
jmp 0x2011ba
call fcn.00153e20
mov esi, eax
call fcn.00153e20
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], eax
add ecx, ecx
push 3
lea eax, [esp + 0x28c]
call fcn.0013dc60
mov dword [esp + 0x14], eax
push 3
mov ecx, 4
lea eax, [esp + 0x294]
call fcn.0013dc60
mov edx, dword [esp + 0x14]
sub esp, 0x20
mov edi, esp
sub esp, 0x20
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x58]
mov edi, esp
mov ecx, 8
sub esp, 0x20
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx]
mov dword [esp + 0x70], eax
mov eax, esp
push ecx
call fcn.00134250
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
sub esp, 0x10
mov eax, esp
push ecx
call fcn.00134640
push 0
push 1
push ebx
call fcn.001f8910
mov eax, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
jl 0x1fe5b5
cmp byte [esp + 0x34], 0
jne 0x201206
mov edx, dword [esp + 0x414]
mov eax, dword [esp + 0x408]
mov ecx, dword [esp + 0x404]
mov esi, dword [esp + 0x400]
push edx
push eax
push ecx
mov edi, ebp
mov eax, ebx
call fcn.00201220
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3e8
ret 0x20