Function at 0x10028760
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x230
mov esi, esp
mov dword [esi + 0x218], ebp
mov dword [esi + 0x21c], esp
mov dword [esi + 0x228], 0xffffffff
mov dword [esi + 0x224], 0x100307e0
mov dword [esi + 0x2c], ecx
lea eax, [esi + 0x220]
mov dword [esi + 0x38], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x220], ecx
mov dword fs:[0], eax
mov dword [esi + 0x194], 0xa
mov dword [esi + 0x228], 0
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [esi + 0x198], ecx
mov dword [esi + 0x1ec], ecx
lea ecx, [esi + 0x194]
mov dword [esi + 0x19c], eax
mov dword [esi + 0x1a0], 0
mov dword [esi + 0x1a4], eax
mov dword [esi + 0x1a8], 1
mov dword [esi + 0x1ac], 0xa
mov dword [esi + 0x1b0], 0
mov dword [esi + 0x1b4], eax
mov word [esi + 0x1b8], 0
mov byte [esi + 0x1bc], 0
call fcn.10033cf0
mov bl, 1
test eax, eax
je 0x1002b755
nop word cs:[eax + eax]
nop
push edx
push eax
call fcn.10052840
add esp, 8
test edx, edx
je 0x10028856
movzx ecx, byte [eax]
cmp cl, 0x3b
jne 0x1002887a
lea ecx, [esi + 0x194]
call fcn.10033cf0
test eax, eax
jne 0x10028840
mov eax, dword [esi + 0x38]
mov bl, 1
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002b75f
jmp 0x1002b770
cmp edx, 4
je 0x1002b6e6
cmp edx, 0xc
jne 0x1002b753
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x23
jne 0x1002b753
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x63
jne 0x1002b753
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6c
jne 0x1002b753
movzx ecx, byte [eax + 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x61
jne 0x1002b753
movzx ecx, byte [eax + 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x73
jne 0x1002b753
movzx ecx, byte [eax + 5]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x73
jne 0x1002b753
movzx ecx, byte [eax + 6]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x1002b753
movzx ecx, byte [eax + 7]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x73
jne 0x1002b753
movzx ecx, byte [eax + 8]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6c
jne 0x1002b753
movzx ecx, byte [eax + 9]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x69
jne 0x1002b753
movzx ecx, byte [eax + 0xa]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x73
jne 0x1002b753
movzx eax, byte [eax + 0xb]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
jne 0x1002b753
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x11c], 4
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0
add eax, 0xe8
mov dword [esi + 0x140], eax
cmp byte [esi + 0x1bc], 0
jne 0x10028c92
lea ecx, [esi + 0x194]
mov dword [esi + 0x228], 1
call fcn.10033cf0
jmp 0x10028a3f
lea ecx, [esi + 0x194]
call fcn.10033cf0
test eax, eax
je 0x10028c92
push edx
push eax
call fcn.10052840
add esp, 8
test edx, edx
je 0x10028a34
movzx ecx, byte [eax]
cmp ecx, 0x3b
je 0x10028a34
mov dword [esi + 0x24], eax
mov eax, ecx
cmp edx, 4
mov dword [esi + 4], edx
jne 0x10028ad7
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
cmp dl, 0x23
jne 0x10028ad7
mov edx, dword [esi + 0x24]
movzx edx, byte [edx + 1]
mov ah, dl
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, dl
cmp ah, 0x65
jne 0x10028ad7
mov edx, dword [esi + 0x24]
movzx edx, byte [edx + 2]
mov ah, dl
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, dl
cmp ah, 0x6f
jne 0x10028ad7
mov edx, dword [esi + 0x24]
movzx edx, byte [edx + 3]
mov ah, dl
add ah, 0xbf
cmp ah, 0x1a
setb ah
shl ah, 5
or ah, dl
cmp ah, 0x66
je 0x1002bc81
test al, al
jns 0x10028b2c
mov edx, dword [esi + 0x24]
and ecx, 0x1f
movzx edi, byte [edx + 1]
and edi, 0x3f
cmp al, 0xdf
jbe 0x10028b20
mov edx, dword [esi + 0x24]
shl edi, 6
movzx edx, byte [edx + 2]
and edx, 0x3f
or edx, edi
cmp al, 0xf0
jb 0x10028b27
mov edi, dword [esi + 0x24]
and ecx, 7
shl edx, 6
shl ecx, 0x12
movzx edi, byte [edi + 3]
and edi, 0x3f
or edi, edx
or ecx, edi
cmp ecx, 0x110000
jne 0x10028b2c
jmp 0x10028b38
shl ecx, 6
or ecx, edi
jmp 0x10028b2c
shl ecx, 0xc
or ecx, edx
add ecx, 0xffffffdd
cmp ecx, 1
jbe 0x1002b786
push dword [esi + 4]
push dword [esi + 0x24]
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x48], 0
test eax, eax
mov dword [esi + 0x110], edx
jne 0x10028b70
mov edx, dword [esi + 0x58]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x110], edx
je 0x10028b82
test ecx, ecx
je 0x10028b82
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 0x48], 0
mov eax, dword [esi + 8]
cmovne eax, dword [esi + 0x110]
mov dword [esi + 8], eax
je 0x1002bd02
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x54], eax
mov eax, dword [ecx + 0xf0]
cmp eax, dword [ecx + 0xec]
jne 0x10028bd8
mov dword [esi + 0x228], 0x26
push eax
push dword [esi + 0x140]
call fcn.100062f0
add esp, 8
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0xf0]
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 8]
mov ecx, dword [edx + 0xe8]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], ebx
inc dword [edx + 0xf0]
cmp dword [esi + 4], 0
js 0x1002bd71
push 1
push dword [esi + 4]
call fcn.100985b0
add esp, 8
test eax, eax
je 0x1002bd85
mov ebx, dword [esi + 4]
mov edi, eax
push ebx
push dword [esi + 0x24]
push eax
call fcn.10193640
add esp, 0xc
mov eax, dword [esi + 0x124]
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
cmp eax, dword [esi + 0x120]
jne 0x10028c5c
mov dword [esi + 0x228], 0x25
push eax
lea eax, [esi + 0x11c]
push eax
call fcn.100069c0
add esp, 8
mov eax, dword [esi + 0x124]
mov ecx, dword [esi + 0x11c]
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*2]
mov dword [ecx + eax*4 + 8], edx
movq xmm0, qword [esi + 0x50]
movq qword [ecx + eax*4], xmm0
mov ecx, dword [esi + 0x110]
inc dword [esi + 0x124]
mov dword [esi + 8], ecx
cmp byte [esi + 0x1bc], 0
je 0x10028a1d
mov eax, dword [esi + 0x2c]
lea edi, [eax + 0x10c]
lea edx, [eax + 0x60]
lea ecx, [eax + 0x10]
mov dword [esi + 0x140], edi
mov dword [esi + 0x17c], edx
lea edi, [eax + 0xf4]
lea edx, [eax + 0x80]
add eax, 0x70
mov dword [esi + 0x110], ecx
mov dword [esi + 0x190], edi
mov dword [esi + 0x48], edx
mov dword [esi + 0x24], eax
cmp byte [esi + 0x1bc], 0
jne 0x1002bc94
lea ecx, [esi + 0x194]
mov dword [esi + 0x228], 1
call fcn.10033cf0
jmp 0x10028cfd
lea ecx, [esi + 0x194]
call fcn.10033cf0
test eax, eax
je 0x1002bc94
push edx
push eax
call fcn.10052840
add esp, 8
test edx, edx
je 0x10028cf2
movzx ecx, byte [eax]
cmp cl, 0x3b
je 0x10028cf2
cmp edx, 4
jne 0x10028d81
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x23
jne 0x10028d81
mov ch, byte [eax + 1]
mov bl, ch
add bl, 0xbf
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, ch
cmp bl, 0x65
jne 0x10028d81
mov ch, byte [eax + 2]
mov bl, ch
add bl, 0xbf
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, ch
cmp bl, 0x6f
jne 0x10028d81
mov ch, byte [eax + 3]
mov bl, ch
add bl, 0xbf
cmp bl, 0x1a
setb bl
shl bl, 5
or bl, ch
cmp bl, 0x66
je 0x1002bc8d
cmp cl, 0x24
jne 0x10028cce
cmp edx, 4
je 0x10028e2b
cmp edx, 6
jne 0x10028e7c
movzx ecx, byte [eax + 1]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x62
jne 0x10028e81
movzx ecx, byte [eax + 2]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x65
jne 0x10028e81
movzx ecx, byte [eax + 3]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x67
jne 0x10028e81
movzx ecx, byte [eax + 4]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x69
jne 0x10028e81
movzx ecx, byte [eax + 5]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x6e
je 0x10028cce
jmp 0x10028e81
movzx ecx, byte [eax + 1]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x65
jne 0x10028e81
movzx ecx, byte [eax + 2]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x6e
jne 0x10028e81
movzx ecx, byte [eax + 3]
mov ch, cl
add ch, 0xbf
cmp ch, 0x1a
setb ch
shl ch, 5
or ch, cl
cmp ch, 0x64
je 0x10028cce
jmp 0x10028e81
cmp edx, 2
jb 0x10028e8b
cmp byte [eax + 1], 0xbf
jle 0x1002bda1
mov ecx, dword [esi + 0x124]
test ecx, ecx
je 0x10028cce
mov edi, dword [esi + 0x11c]
lea ecx, [ecx + ecx*2]
dec edx
lea ecx, [edi + ecx*4]
mov dword [esi + 4], edi
mov dword [esi + 0x10], ecx
jmp 0x10028ec6
xor edi, edi
cmp edi, edx
jae 0x10028f10
mov ecx, dword [esi + 4]
add ecx, 0xc
cmp ecx, dword [esi + 0x10]
mov dword [esi + 4], ecx
je 0x10028cce
mov ecx, dword [esi + 4]
cmp dword [ecx + 8], edx
jne 0x10028eb4
test edx, edx
je 0x10028eae
mov ecx, dword [esi + 4]
xor edi, edi
mov ecx, dword [ecx]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
movzx ebx, byte [ecx + edi]
mov ch, byte [eax + edi + 1]
mov cl, bl
mov bh, ch
add cl, 0xbf
cmp cl, 0x1a
setb cl
add bh, 0xbf
shl cl, 5
cmp bh, 0x1a
setb bh
or cl, bl
shl bh, 5
or bh, ch
cmp cl, bh
jne 0x10028eb0
inc edi
cmp edx, edi
jne 0x10028edc
cmp byte [esi + 0x1bc], 0
jne 0x1002bd02
lea ecx, [esi + 0x194]
mov dword [esi + 0x228], 1
call fcn.10033cf0
jmp 0x10028f3f
lea ecx, [esi + 0x194]
call fcn.10033cf0
test eax, eax
je 0x1002bd02
push edx
push eax
call fcn.10052840
add esp, 8
test edx, edx
je 0x10028f34
movzx ecx, byte [eax]
cmp cl, 0x3b
je 0x10028f34
cmp edx, 4
je 0x1002b458
cmp edx, 6
jne 0x10028cce
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x24
jne 0x10028cce
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x62
jne 0x10028cce
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x10028cce
movzx ecx, byte [eax + 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x67
jne 0x10028cce
movzx ecx, byte [eax + 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x69
jne 0x10028cce
movzx eax, byte [eax + 5]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x6e
jne 0x10028cce
push dword [esi + 4]
lea eax, [esi + 0x1c0]
push eax
call fcn.10178120
add esp, 8
mov dword [esi + 0x228], 2
push 0
call fcn.1016f860
add esp, 4
test eax, eax
je 0x1002bdd0
movdqu xmm0, xmmword [eax]
movd edx, xmm0
pshufd xmm1, xmm0, 0x55
add edx, 1
movd ecx, xmm1
adc ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
xor eax, eax
mov dword [esi + 0x1f8], 0x101b1fa0
mov dword [esi + 0x1fc], 0
mov dword [esi + 0x200], 0
mov dword [esi + 0x204], 0
movdqu xmmword [esi + 0x208], xmm0
mov byte [esi + 0x28], 0
or al, byte [esi + 0x1bc]
mov dword [esi + 0x228], 3
jne 0x1002b4d3
lea ecx, [esi + 0x194]
mov byte [esi + 0xf], 1
call fcn.10033cf0
jmp 0x100290cf
lea ecx, [esi + 0x194]
mov byte [esi + 0xf], 1
call fcn.10033cf0
test eax, eax
je 0x1002b4d3
mov byte [esi + 0xf], 1
push edx
push eax
call fcn.10052840
add esp, 8
test edx, edx
je 0x100290c0
movzx ecx, byte [eax]
cmp ecx, 0x3b
je 0x100290c0
cmp edx, 4
mov ebx, ecx
mov byte [esi + 8], cl
jne 0x1002916f
movzx ebx, byte [esi + 8]
mov bh, bl
add bh, 0xbf
cmp bh, 0x1a
setb bh
shl bh, 5
or bh, bl
cmp bh, 0x23
jne 0x1002916f
mov bh, byte [eax + 1]
mov byte [esi + 4], bh
mov bh, byte [esi + 4]
add bh, 0xbf
cmp bh, 0x1a
setb bh
shl bh, 5
or bh, byte [esi + 4]
cmp bh, 0x65
jne 0x1002916f
mov bh, byte [eax + 2]
mov byte [esi + 4], bh
mov bh, byte [esi + 4]
add bh, 0xbf
cmp bh, 0x1a
setb bh
shl bh, 5
or bh, byte [esi + 4]
cmp bh, 0x6f
jne 0x1002916f
mov bh, byte [eax + 3]
mov byte [esi + 4], bh
mov bh, byte [esi + 4]
add bh, 0xbf
cmp bh, 0x1a
setb bh
shl bh, 5
or bh, byte [esi + 4]
cmp bh, 0x66
je 0x1002b6db
cmp byte [esi + 8], 0
jns 0x100291ca
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp byte [esi + 8], 0xdf
jbe 0x100291bd
movzx ebx, byte [eax + 2]
shl edi, 6
mov dword [esi + 4], ebx
and dword [esi + 4], 0x3f
add dword [esi + 4], edi
cmp byte [esi + 8], 0xf0
jb 0x100291c4
movzx edi, byte [eax + 3]
mov ebx, dword [esi + 4]
and ecx, 7
shl ecx, 0x12
shl ebx, 6
and edi, 0x3f
or edi, ebx
or ecx, edi
cmp ecx, 0x110000
jne 0x100291ca
jmp 0x100291d6
shl ecx, 6
or ecx, edi
jmp 0x100291ca
shl ecx, 0xc
add ecx, dword [esi + 4]
add ecx, 0xffffffdb
cmp ecx, 0xfffffffe
jae 0x1002b4cd
lea ecx, [esi + 0x1c0]
mov dword [esi + 0x1f0], ecx
cmp byte [eax], 0x5e
jne 0x10029273
lea ecx, [esi + 0x1c0]
mov byte [esi + 0xf], 1
mov dword [esi + 0x1f4], ecx
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1005ad00
add esp, 0xc
cmp dword [esi + 0x50], 0
je 0x1002a856
mov eax, dword [esi + 0x58]
lea edi, [esi + 0x78]
mov ebx, dword [esi + 0x60]
mov ecx, dword [esi + 0x5c]
mov edx, dword [edi - 4]
movq xmm0, qword [edi - 0xc]
mov dword [esi + 0x164], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x168], ecx
mov dword [esi + 0x16c], ebx
mov dword [esi + 0xac], ebx
mov dword [esi + 0x130], edx
mov edx, dword [esi + 0x64]
movq qword [esi + 0x128], xmm0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esi + 0x138], edx
mov dword [esi + 0x1e8], eax
mov dword [esi + 0xec], eax
mov dword [esi + 8], eax
jmp 0x10029519
mov byte [esi + 0xf], 1
push edx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1005ab90
add esp, 0xc
cmp dword [esi + 0x50], 0
je 0x1002a85f
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
lea ebx, [esi + 0x78]
mov eax, dword [esi + 0x60]
mov dword [esi + 0x228], 6
mov edi, dword [ebx + 8]
movq xmm0, qword [ebx]
mov ebx, dword [esi + 0x70]
mov dword [esi + 0x114], ecx
mov dword [esi + 0x118], edx
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0xe0], edi
mov edi, dword [esi + 0x64]
movq qword [esi + 0xd8], xmm0
mov dword [esi + 0xac], ebx
mov dword [esi + 0x94], edx
mov edx, dword [esi + 0x74]
mov dword [esi + 0x40], ecx
mov dword [esi + 0xec], edx
push 0x10
push edi
push eax
call fcn.10185500
add esp, 0xc
mov dword [esi + 0x10], eax
test byte [esi + 0x10], 1
jne 0x1002ace2
lea eax, [esi + 0x1f0]
mov dword [esi + 0x50], 0x101b1ff0
mov dword [esi + 0x54], 2
mov dword [esi + 0x60], 0
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x114]
mov dword [esi + 0xb4], 0x10008fd0
mov dword [esi + 0xb8], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0xbc], 0x1005fe90
mov dword [esi + 0x58], eax
lea eax, [esi + 0x50]
mov dword [esi + 0x5c], 2
push eax
lea eax, [esi + 0x150]
push eax
call fcn.101773a0
add esp, 8
mov eax, dword [esi + 0x158]
mov ecx, dword [esi + 0xe0]
movq xmm0, qword [esi + 0x150]
mov byte [esi + 0x4f], 0
mov dword [esi + 0x228], 7
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0xd8]
lea ecx, [ecx + ecx*4]
movq qword [esi + 0x98], xmm0
lea ecx, [eax + ecx*4]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x98]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x60], eax
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0xf0]
push eax
call fcn.1007cbc0
add esp, 8
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
shr eax, 0x10
cmp dword [ecx + 0xc], 0
mov dword [esi + 0x10], eax
mov word [esi + 0x50], ax
je 0x1002a90c
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x110]
call fcn.10092140
add esp, 8
mov ecx, dword [esi + 0x2c]
mov edi, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0xa8], 0
shr edi, 0x19
movd xmm0, edi
punpcklbw xmm0, xmm0
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea eax, [edx - 0xc]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x44], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x34]
movdqa xmm2, xmm0
and ecx, dword [esi + 0x1c]
movdqu xmm1, xmmword [eax + ecx]
mov dword [esi + 0x14], ecx
pcmpeqb xmm2, xmm1
pmovmskb ebx, xmm2
test bx, bx
mov dword [esi + 8], ebx
je 0x10029497
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x10]
tzcnt ecx, edx
add ecx, dword [esi + 0x14]
and ecx, dword [esi + 0x1c]
mov ebx, ecx
neg ebx
lea eax, [ebx + ebx*2]
lea ebx, [edx - 1]
mov dword [esi + 4], eax
and ebx, edx
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 4]
cmp word [eax + edx*4], di
jne 0x1002945f
jmp 0x1002a868
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x1002a868
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xa8]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x14], eax
mov dword [esi + 0xa8], ecx
jmp 0x10029442
mov eax, dword [esi + 0x44]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x58], eax
push dword [esi + 0x1c]
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x1f8]
push eax
call fcn.10084450
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x174], eax
mov dword [esi + 0x170], ecx
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0x1e8]
je 0x1002a899
mov eax, dword [esi + 0xac]
mov eax, dword [eax]
test eax, eax
je 0x1002a899
mov ecx, dword [esi + 0xac]
mov edi, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov edx, dword [ecx + 8]
mov dword [esi + 0x188], edi
mov edi, dword [ecx + 0x14]
mov dword [esi + 4], ebx
mov ebx, dword [ecx + 0x18]
mov dword [esi + 0x18c], edx
mov dword [esi + 0x10], edi
mov edi, dword [ecx + 0x1c]
mov dword [esi + 0x34], ebx
mov ebx, dword [ecx + 0x20]
mov dword [esi + 0x44], edi
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x228], 0x12
mov dword [esi + 0x1c], edi
push 0x10
push ecx
push eax
call fcn.10185500
add esp, 0xc
mov edx, dword [esi + 8]
mov ecx, eax
shr ecx, 0x10
test al, 1
cmove edx, ecx
mov dword [esi + 8], edx
jne 0x1002b0f1
lea eax, [esi + 0x1f4]
mov dword [esi + 0x50], 0x101b1ff0
mov dword [esi + 0x54], 2
mov dword [esi + 0x60], 0
mov dword [esi + 0xb0], eax
lea eax, [esi + 0x164]
mov dword [esi + 0xb4], 0x10008fd0
mov dword [esi + 0xb8], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0xbc], 0x1005fe90
mov dword [esi + 0x58], eax
lea eax, [esi + 0x50]
mov dword [esi + 0x5c], 2
push eax
lea eax, [esi + 0xf0]
push eax
call fcn.101773a0
add esp, 8
mov eax, dword [esi + 0xf8]
mov ecx, dword [esi + 0x130]
movq xmm0, qword [esi + 0xf0]
mov byte [esi + 0x4e], 0
mov dword [esi + 0x228], 0x13
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0x128]
lea ecx, [ecx + ecx*4]
movq qword [esi + 0x100], xmm0
lea ecx, [eax + ecx*4]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x100]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x60], eax
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x144]
push eax
call fcn.1007cbc0
add esp, 8
mov byte [esi + 0x33], 1
mov dword [esi + 0x228], 0x14
push 0xa
push dword [esi + 0x10]
push dword [esi + 4]
call fcn.101854e0
add esp, 0xc
movzx ecx, byte [esi + 0xec]
test al, 1
movzx edx, dl
cmovne edx, ecx
mov dword [esi + 0xec], edx
jne 0x1002b0a4
cmp dword [esi + 0x44], 1
jne 0x100296dd
mov ecx, dword [esi + 0x34]
mov al, 1
mov dword [esi + 0x40], eax
cmp byte [ecx], 0x31
je 0x100296e4
mov eax, dword [esi + 0x34]
cmp byte [eax], 0x32
sete al
add al, al
mov dword [esi + 0x40], eax
jmp 0x100296e4
mov dword [esi + 0x40], 0
mov eax, dword [esi + 0x14c]
mov byte [esi + 0x33], 1
mov dword [esi + 0x34], eax
push 0xa
push dword [esi + 0x1c]
push dword [esi + 0x14]
lea eax, [esi + 0x50]
push eax
call fcn.101854c0
add esp, 0x10
add dword [esi + 0xac], 0x28
cmp byte [esi + 0x50], 0
jne 0x1002971b
mov eax, dword [esi + 0x54]
mov dword [esi + 0x184], eax
jne 0x1002b0a4
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 8]
cmp dword [ecx + 0xc], 0
mov word [esi + 0x50], ax
je 0x10029836
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x110]
call fcn.10092140
add esp, 8
mov ecx, dword [esi + 0x2c]
mov edi, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0xe8], 0
shr edi, 0x19
movd xmm0, edi
punpcklbw xmm0, xmm0
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea eax, [edx - 0xc]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x8c], edx
mov dword [esi + 0x44], eax
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x8c]
movdqa xmm2, xmm0
and ecx, dword [esi + 0x1c]
movdqu xmm1, xmmword [eax + ecx]
mov dword [esi + 0x14], ecx
pcmpeqb xmm2, xmm1
pmovmskb ebx, xmm2
test bx, bx
mov dword [esi + 4], ebx
je 0x100297d7
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
tzcnt ecx, edx
add ecx, dword [esi + 0x14]
and ecx, dword [esi + 0x1c]
mov ebx, ecx
neg ebx
lea eax, [ebx + ebx*2]
lea ebx, [edx - 1]
mov dword [esi + 0x10], eax
and ebx, edx
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x10]
cmp di, word [eax + edx*4]
jne 0x100297a2
jmp 0x10029802
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x10029802
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xe8]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0x14], eax
mov dword [esi + 0xe8], ecx
jmp 0x10029782
neg ecx
mov edx, dword [esi + 4]
mov edi, 0
mov dword [esi + 0x228], 0x14
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x8c]
test dx, dx
lea ecx, [ecx + eax*4]
cmove ecx, edi
add ecx, 0xfffffff4
test dx, dx
cmove ecx, edi
mov dword [esi + 0x10], ecx
jmp 0x1002983d
mov dword [esi + 0x10], 0
mov byte [esi + 0x33], 1
push 0
push 0x101b1e9c
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x54]
mov dword [esi + 4], 0
lea ebx, [eax + 4]
mov eax, dword [esi + 0x50]
test eax, eax
jne 0x10029877
mov edx, dword [esi + 0x58]
mov dword [esi + 4], ecx
mov dword [esi + 0x1e4], edx
je 0x10029889
test ecx, ecx
je 0x10029889
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 4], 0
mov eax, dword [esi + 0x94]
cmovne eax, dword [esi + 0x1e4]
mov dword [esi + 0x94], eax
je 0x1002b0a4
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x94]
lea edi, [esi + 0xb0]
test eax, eax
mov dword [esi + 0xb0], ecx
mov dword [esi + 0xb4], edx
lea eax, [eax + 8]
lea edx, [esi + 0xb4]
cmove eax, edx
cmove ebx, edi
mov eax, dword [eax]
mov edi, dword [ebx]
test eax, eax
mov dword [esi + 0x14], eax
je 0x100298ff
js 0x1002bdf2
push 1
push dword [esi + 0x14]
call fcn.100985b0
add esp, 8
test eax, eax
mov dword [esi + 0x44], eax
jne 0x10029906
jmp 0x1002be06
mov dword [esi + 0x44], 1
mov ebx, dword [esi + 0x14]
push ebx
push edi
mov edi, dword [esi + 0x44]
push edi
call fcn.10193640
add esp, 0xc
cmp dword [esi + 0x94], 0
mov eax, dword [esi + 4]
mov dword [esi + 0x1cc], edi
mov dword [esi + 0x1d0], ebx
mov byte [eax], 0
je 0x10029945
push 1
push dword [esi + 0x94]
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
cmp byte [esi + 0x40], 2
jne 0x100299a4
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x144]
lea eax, [ecx + ecx*8]
mov dword [esi + 0x1c], edx
lea eax, [eax + eax*2]
add eax, ecx
add eax, edx
cmp byte [esi + 0xec], 2
jne 0x100299dc
mov ecx, dword [esi + 0x1c]
mov byte [esi + 0x22], 1
mov byte [esi + 0x23], 1
mov dword [esi + 0x228], 0x15
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
lea eax, [esi + 0x50]
mov dword [esi + 0x58], 1
push eax
lea eax, [esi + 0xd8]
push eax
call fcn.1007d530
add esp, 8
jmp 0x10029a7d
mov eax, dword [esi + 0x144]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x1c], eax
lea eax, [ecx + ecx*8]
lea edi, [eax + eax*2]
add edi, ecx
test ecx, ecx
je 0x10029a13
cmp edi, 0x7ffffff1
jae 0x1002be22
push 4
push edi
call fcn.100985b0
add esp, 8
test eax, eax
jne 0x10029a18
jmp 0x1002be3e
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x1c]
mov byte [esi + 0x22], 1
mov byte [esi + 0x23], 1
mov dword [esi + 0x228], 0x15
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], eax
dec ecx
lea eax, [esi + 0x50]
mov dword [esi + 0x58], ecx
push eax
lea eax, [esi + 0xd8]
push eax
call fcn.1007ca20
add esp, 8
jmp 0x10029a7d
mov eax, 4
lea ecx, [esi + 0xb8]
mov dword [esi + 0xb0], eax
mov dword [esi + 0x228], 0x16
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0xb4], eax
lea eax, [esi + 0x50]
add edi, ecx
mov dword [esi + 0xb8], 0
push eax
push edi
push ecx
call fcn.10030e50
add esp, 0xc
movq xmm0, qword [esi + 0xb0]
mov eax, dword [esi + 0xb8]
movq qword [esi + 0xd8], xmm0
mov dword [esi + 0xe0], eax
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x34]
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 1
mov dword [esi + 0x228], 0x17
call fcn.1002c720
mov dword [esi + 0x10], eax
cmp dword [esi + 0x10], 0
mov eax, dword [esi + 0xa8]
cmovne eax, edx
mov dword [esi + 0xa8], eax
je 0x1002aaf1
mov eax, dword [esi + 0x10]
movq xmm0, qword [esi + 0xd8]
mov dword [esi + 0x228], 0x21
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xa8]
movq qword [esi + 0x98], xmm0
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0xe0]
mov dword [esi + 0xe8], eax
mov dword [esi + 0xa0], eax
lea eax, [esi + 0x100]
push eax
lea eax, [esi + 0xf0]
push eax
call fcn.10178120
add esp, 8
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0xb0]
push eax
call fcn.10178100
add esp, 8
mov eax, dword [esi + 0xb0]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xb8]
cmp eax, 8
jae 0x10029b53
test eax, eax
je 0x10029b4f
xor ecx, ecx
mov edx, dword [esi + 4]
cmp byte [edx + ecx], 0
je 0x10029b74
inc ecx
cmp eax, ecx
jne 0x10029b41
xor eax, eax
jmp 0x10029b79
mov byte [esi + 0x91], 1
mov dword [esi + 0x228], 0x22
push eax
push dword [esi + 4]
push 0
call fcn.101823b0
add esp, 0xc
jmp 0x10029b79
mov eax, 1
test eax, eax
jne 0x1002ab24
mov eax, dword [esi + 0xb8]
movq xmm0, qword [esi + 0xb0]
mov byte [esi + 0x91], 0
mov dword [esi + 0x228], 0x22
mov dword [esi + 0x58], eax
lea eax, [esi + 0x50]
movq qword [esi + 0x50], xmm0
push eax
call fcn.101771a0
add esp, 4
mov dword [esi + 0x8c], eax
cmp dword [esi + 0x8c], 0
mov eax, dword [esi + 0x13c]
cmovne eax, edx
mov dword [esi + 0x13c], eax
je 0x1002ab5e
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x228], 0x20
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x13c]
mov dword [esi + 0x118], eax
push dword [esi + 0x188]
push dword [esi + 0x18c]
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov dword [esi + 4], 0
test eax, eax
jne 0x10029c2d
mov edx, dword [esi + 0x58]
mov dword [esi + 4], ecx
mov dword [esi + 0x1e0], edx
je 0x10029c3f
test ecx, ecx
je 0x10029c3f
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 4], 0
mov eax, dword [esi + 0x178]
cmovne eax, dword [esi + 0x1e0]
mov dword [esi + 0x178], eax
je 0x1002ab36
cmp dword [esi + 0x14], 0
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x178]
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], ecx
je 0x10029c95
js 0x1002be60
push 1
push dword [esi + 0x14]
call fcn.100985b0
add esp, 8
mov edi, eax
test eax, eax
jne 0x10029c9a
jmp 0x1002be74
mov edi, 1
mov ebx, dword [esi + 0x14]
push ebx
push dword [esi + 0x44]
push edi
call fcn.10193640
add esp, 0xc
mov eax, dword [esi + 0xe0]
lea ecx, [esi + 0x78]
movq xmm0, qword [esi + 0xd8]
mov edx, dword [esi + 0x8c]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
movq qword [ecx + 8], xmm0
mov ecx, dword [esi + 0x13c]
mov word [esi + 0x50], ax
mov eax, dword [esi + 0x184]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x40]
mov byte [esi + 0x58], al
mov eax, dword [esi + 0xec]
mov byte [esi + 0x59], 2
mov byte [esi + 0x5a], al
mov dword [esi + 0x5c], edx
mov dword [esi + 0x60], ecx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x178]
mov dword [esi + 0x64], edx
mov dword [esi + 0x68], ecx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], edi
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0xe8]
mov dword [esi + 0x78], ebx
mov ecx, dword [edi + 0x114]
mov dword [esi + 0x7c], edx
cmp ecx, dword [edi + 0x110]
mov dword [esi + 0x8c], ecx
jne 0x10029d63
mov dword [esi + 0x228], 0x1e
push dword [esi + 0x8c]
push dword [esi + 0x140]
call fcn.10006a70
add esp, 8
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x114]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x88]
imul ecx, ecx, 0x3c
mov eax, dword [edi + 0x10c]
mov dword [eax + ecx + 0x38], edx
movsd xmm0, qword [esi + 0x80]
movsd qword [eax + ecx + 0x30], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [eax + ecx + 0x28], xmm0
movsd xmm0, qword [esi + 0x70]
movsd qword [eax + ecx + 0x20], xmm0
movsd xmm0, qword [esi + 0x68]
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esi + 0x60]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
mov eax, dword [esi + 8]
inc dword [edi + 0x114]
mov word [esi + 0x50], ax
lea eax, [esi + 0x50]
push eax
push dword [esi + 0x24]
call fcn.10092140
add esp, 8
mov ebx, eax
mov dword [esi + 0x1d8], edx
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x64]
mov dword [esi + 0xe8], 0
mov dword [esi + 0x1dc], eax
shr ebx, 0x19
movd xmm0, ebx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
mov dword [esi + 4], ecx
mov dword [esi + 0x10], edx
pshufd xmm0, xmm0, 0
and eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
movdqa xmm2, xmm0
movdqu xmm1, xmmword [ecx + eax]
pcmpeqb xmm2, xmm1
pmovmskb ebx, xmm2
test bx, bx
je 0x10029e60
tzcnt edx, ebx
mov edi, dword [esi + 4]
lea ecx, [ebx - 1]
add edx, eax
and ecx, ebx
and edx, dword [esi + 0x10]
lea ebx, [edx*8]
sub edi, ebx
mov ebx, dword [esi + 8]
cmp word [edi - 8], bx
mov ebx, ecx
jne 0x10029e34
jmp 0x10029e89
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb ecx, xmm1
test ecx, ecx
jne 0x1002a0a6
mov ecx, dword [esi + 0xe8]
lea eax, [eax + ecx + 0x10]
add ecx, 0x10
mov dword [esi + 0xe8], ecx
jmp 0x10029e1d
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 4]
neg edx
mov dword [ecx + edx*8 - 4], eax
mov dword [esi + 0x228], 0x17
mov eax, dword [esi + 0x164]
mov dword [esi + 0xb0], 0x101b1658
mov dword [esi + 0xb4], 3
mov dword [esi + 0xc0], 0
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x168]
mov dword [esi + 0x154], eax
mov eax, dword [esi + 0xec]
mov byte [esi + 0x160], al
mov eax, dword [esi + 0x18c]
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0x188]
mov dword [esi + 0x15c], eax
lea eax, [esi + 0x150]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x160]
mov dword [esi + 0x54], 0x1005fe90
mov dword [esi + 0x58], eax
lea eax, [esi + 0x158]
mov dword [esi + 0x5c], fcn.10186500
mov dword [esi + 0x60], eax
lea eax, [esi + 0x50]
mov dword [esi + 0x64], 0x1005fe90
mov dword [esi + 0xb8], eax
lea eax, [esi + 0xb0]
mov dword [esi + 0xbc], 3
push eax
lea eax, [esi + 0xf0]
push eax
call fcn.101773a0
add esp, 8
movq xmm0, qword [esi + 0xf0]
mov ecx, dword [esi + 0xf8]
movq qword [esi + 0x50], xmm0
test ecx, ecx
mov dword [esi + 0x58], ecx
mov dword [esi + 4], ecx
mov eax, dword [esi + 0x50]
mov dword [esi + 0x10], eax
je 0x1002a09f
js 0x1002be8d
push 1
push dword [esi + 4]
call fcn.100985b0
add esp, 8
test eax, eax
je 0x1002be9e
mov ebx, eax
mov edi, eax
push dword [esi + 4]
push dword [esi + 0x10]
push ebx
call fcn.10193640
add esp, 0xc
cmp dword [esi + 4], 8
mov ecx, ebx
jb 0x1002a0eb
xor eax, eax
cmp dword [esi + 4], 0x20
jb 0x1002a056
mov eax, dword [esi + 4]
xor ecx, ecx
and eax, 0xffffffe0
movdqu xmm1, xmmword [edi + ecx]
movdqu xmm0, xmmword [edi + ecx + 0x10]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [edi + ecx], xmm4
movdqu xmmword [edi + ecx + 0x10], xmm7
add ecx, 0x20
cmp eax, ecx
jne 0x10029fd6
cmp dword [esi + 4], eax
je 0x1002a108
test byte [esi + 4], 0x18
je 0x1002a0e7
mov edx, dword [esi + 4]
and edx, 0xfffffff8
lea ecx, [ebx + edx]
movq xmm0, qword [edi + eax]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edi + eax], xmm2
add eax, 8
cmp edx, eax
jne 0x1002a05f
cmp dword [esi + 4], edx
jne 0x1002a0eb
jmp 0x1002a108
mov edi, 1
jmp 0x1002a108
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
push dword [esi + 0x24]
push dword [esi + 0x8c]
push dword [esi + 8]
push dword [esi + 0x1d8]
push dword [esi + 0x1dc]
push dword [esi + 0x17c]
call fcn.10004ef0
add esp, 0x18
jmp 0x10029ea2
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 4]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002a0ee
mov eax, dword [esi + 4]
mov dword [esi + 0xb0], edi
mov dword [esi + 0x228], 0x1d
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], eax
push dword [esi + 0x8c]
lea eax, [esi + 0xb0]
push eax
lea eax, [esi + 0x1f8]
push eax
call fcn.10084450
add esp, 0xc
mov eax, dword [esi + 0x54]
test eax, eax
je 0x1002a158
push 1
push eax
push dword [esi + 0x10]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x168]
test eax, eax
mov dword [esi + 4], eax
je 0x1002a281
js 0x1002beb7
mov eax, dword [esi + 0x164]
mov dword [esi + 0x10], eax
push 1
push dword [esi + 4]
call fcn.100985b0
add esp, 8
test eax, eax
je 0x1002bed4
mov ebx, eax
mov edi, eax
push dword [esi + 4]
push dword [esi + 0x10]
push ebx
call fcn.10193640
add esp, 0xc
cmp dword [esi + 4], 8
mov ecx, ebx
jb 0x1002a28c
xor eax, eax
cmp dword [esi + 4], 0x20
jb 0x1002a238
mov eax, dword [esi + 4]
xor ecx, ecx
and eax, 0xffffffe0
movdqu xmm1, xmmword [edi + ecx]
movdqu xmm0, xmmword [edi + ecx + 0x10]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [edi + ecx], xmm4
movdqu xmmword [edi + ecx + 0x10], xmm7
add ecx, 0x20
cmp eax, ecx
jne 0x1002a1c0
cmp dword [esi + 4], eax
je 0x1002a2a9
test byte [esi + 4], 0x18
je 0x1002a288
mov edx, dword [esi + 4]
and edx, 0xfffffff8
lea ecx, [ebx + edx]
movq xmm0, qword [edi + eax]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edi + eax], xmm2
add eax, 8
cmp edx, eax
jne 0x1002a241
cmp dword [esi + 4], edx
jne 0x1002a28c
jmp 0x1002a2a9
mov edi, 1
jmp 0x1002a2a9
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 4]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002a28f
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], eax
mov eax, dword [ecx + 0xfc]
cmp eax, dword [ecx + 0xf8]
jne 0x1002a2e8
mov dword [esi + 0x228], 0x1c
push eax
push dword [esi + 0x190]
call fcn.100069c0
add esp, 8
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0xfc]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*2]
mov ecx, dword [edi + 0xf4]
mov dword [ecx + eax*4 + 8], edx
movq xmm0, qword [esi + 0x50]
movq qword [ecx + eax*4], xmm0
inc dword [edi + 0xfc]
cmp byte [esi + 0x40], 2
jne 0x1002a3f4
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x34]
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
call fcn.1002c720
mov dword [esi + 0x1c], eax
mov dword [esi + 4], edx
cmp dword [esi + 0x1c], 0
mov eax, dword [esi + 4]
cmove eax, dword [esi + 0x174]
mov dword [esi + 4], eax
je 0x1002abb1
mov eax, dword [esi + 0x1c]
movsd xmm0, qword [esi + 0x144]
mov dword [esi + 0x228], 0x1a
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 4]
movsd qword [esi + 0x98], xmm0
movq xmm0, qword [esi + 0x100]
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0x14c]
movq qword [esi + 0xf0], xmm0
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0xf8], eax
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0xb0]
push eax
call fcn.10178100
add esp, 8
mov eax, dword [esi + 0xb0]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xb8]
cmp eax, 8
jae 0x1002a4ca
test eax, eax
je 0x1002a3ed
xor ecx, ecx
mov edx, dword [esi + 0x10]
cmp byte [edx + ecx], 0
je 0x1002a4eb
inc ecx
cmp eax, ecx
jne 0x1002a3db
xor eax, eax
jmp 0x1002a4f0
cmp dword [esi + 0x14], 0
mov eax, dword [esi + 0x44]
mov byte [eax], 0
je 0x1002a410
push 1
push dword [esi + 0x14]
push dword [esi + 0x44]
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 0x34], 0
je 0x1002a478
mov eax, dword [esi + 0x1c]
lea edi, [eax + 0x18]
jmp 0x1002a426
add edi, 0x1c
dec dword [esi + 0x34]
je 0x1002a478
mov eax, dword [edi - 0x14]
mov byte [eax], 0
mov eax, dword [edi - 0x10]
test eax, eax
je 0x1002a441
push 1
push eax
push dword [edi - 0x14]
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi - 0xc]
mov byte [eax], 0
mov eax, dword [edi - 8]
test eax, eax
je 0x1002a45c
push 1
push eax
push dword [edi - 0xc]
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi - 4]
mov byte [eax], 0
mov eax, dword [edi]
test eax, eax
je 0x1002a41e
push 1
push eax
push dword [edi - 4]
call fcn.100985c0
add esp, 0xc
jmp 0x1002a41e
mov eax, dword [esi + 0x148]
test eax, eax
je 0x1002a498
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x1c]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x104]
test eax, eax
je 0x1002a4b3
push 1
push eax
push dword [esi + 0x100]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x170]
mov ecx, dword [esi + 0x174]
mov dword [esi + 0x10], eax
mov dword [esi + 4], ecx
jmp 0x10029507
mov byte [esi + 0x92], 1
mov dword [esi + 0x228], 0x1b
push eax
push dword [esi + 0x10]
push 0
call fcn.101823b0
add esp, 0xc
jmp 0x1002a4f0
mov eax, 1
test eax, eax
jne 0x1002affe
mov eax, dword [esi + 0xb8]
movq xmm0, qword [esi + 0xb0]
mov byte [esi + 0x92], 0
mov dword [esi + 0x228], 0x1b
mov dword [esi + 0x58], eax
lea eax, [esi + 0x50]
movq qword [esi + 0x50], xmm0
push eax
call fcn.101771a0
add esp, 4
mov dword [esi + 0x40], eax
mov dword [esi + 0x10], edx
cmp dword [esi + 0x40], 0
mov eax, dword [esi + 0x10]
cmove eax, dword [esi + 0x170]
mov dword [esi + 0x10], eax
je 0x1002b02c
mov eax, dword [esi + 0x40]
mov dword [esi + 0x228], 0x19
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x118], eax
push 0
push 0x101b1e9c
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
xor edi, edi
test eax, eax
jne 0x1002a58e
mov edx, dword [esi + 0x58]
mov edi, ecx
mov dword [esi + 0x1d4], edx
je 0x1002a5a0
test ecx, ecx
je 0x1002a5a0
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x180]
test edi, edi
cmovne eax, dword [esi + 0x1d4]
mov dword [esi + 0x180], eax
je 0x1002b010
mov eax, dword [esi + 0x14c]
lea ecx, [esi + 0x78]
movq xmm0, qword [esi + 0x144]
mov edx, dword [esi + 0x184]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
movq qword [ecx + 8], xmm0
mov ecx, dword [esi + 0x40]
mov word [esi + 0x50], ax
mov dword [esi + 0x54], edx
mov edx, dword [esi + 0x10]
mov word [esi + 0x58], 0
mov byte [esi + 0x5a], 0
mov dword [esi + 0x5c], ecx
mov ecx, dword [esi + 0x180]
mov dword [esi + 0x60], edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], ecx
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0x2c]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x44]
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x74], edx
mov edx, dword [edi + 0x114]
mov dword [esi + 0x78], ecx
mov ecx, dword [esi + 0x34]
cmp edx, dword [edi + 0x110]
mov dword [esi + 0x7c], ecx
mov ecx, edx
mov dword [esi + 0x1c], edx
jne 0x1002a65e
mov dword [esi + 0x228], 0x18
push dword [esi + 0x1c]
push dword [esi + 0x140]
call fcn.10006a70
add esp, 8
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x114]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x88]
imul ecx, ecx, 0x3c
mov eax, dword [edi + 0x10c]
mov dword [eax + ecx + 0x38], edx
movsd xmm0, qword [esi + 0x80]
movsd qword [eax + ecx + 0x30], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [eax + ecx + 0x28], xmm0
movsd xmm0, qword [esi + 0x70]
movsd qword [eax + ecx + 0x20], xmm0
movsd xmm0, qword [esi + 0x68]
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esi + 0x60]
movsd qword [eax + ecx + 0x10], xmm0
movq xmm0, qword [esi + 0x50]
movq xmm1, qword [esi + 0x58]
movq qword [eax + ecx + 8], xmm1
movq qword [eax + ecx], xmm0
inc dword [edi + 0x114]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
push dword [esi + 0x1c]
push dword [esi + 8]
push dword [esi + 0x17c]
call fcn.10085370
add esp, 0xc
mov eax, dword [esi + 0x164]
mov byte [esi + 0xc], 0
mov byte [esi + 0xd], 0
mov byte [esi + 0xe], 0
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x168]
push 0
mov dword [esi + 0x14], eax
push eax
call fcn.100061f0
add esp, 8
mov dword [esi + 0x34], edx
mov edi, dword [esi + 0x14]
mov ebx, eax
mov dword [esi + 0x44], eax
push edi
push dword [esi + 0x40]
push eax
call fcn.10193640
add esp, 0xc
test edi, edi
je 0x100294c9
cmp dword [esi + 0x14], 8
mov ecx, dword [esi + 0x44]
jb 0x1002a834
xor eax, eax
cmp dword [esi + 0x14], 0x20
jb 0x1002a7d9
mov eax, dword [esi + 0x14]
lea ecx, [ebx + 0x10]
and eax, 0xffffffe0
mov edx, eax
movdqu xmm1, xmmword [ecx - 0x10]
movdqu xmm0, xmmword [ecx]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [ecx - 0x10], xmm4
movdqu xmmword [ecx], xmm7
add ecx, 0x20
add edx, 0xffffffe0
jne 0x1002a760
cmp dword [esi + 0x14], eax
je 0x100294c9
test byte [esi + 0x14], 0x18
je 0x1002a830
mov edi, dword [esi + 0x14]
lea edx, [ebx + eax]
and edi, 0xfffffff8
lea ecx, [ebx + edi]
sub eax, edi
mov dword [esi + 0x40], edi
movq xmm0, qword [edx]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edx], xmm2
add edx, 8
add eax, 8
jne 0x1002a7ea
mov eax, dword [esi + 0x40]
cmp dword [esi + 0x14], eax
je 0x100294c9
jmp 0x1002a834
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 0x14]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002a837
jmp 0x100294c9
movzx eax, byte [esi + 0x28]
jmp 0x10029099
movzx eax, byte [esi + 0x28]
jmp 0x10029099
neg ecx
mov edx, dword [esi + 8]
mov edi, 0
mov dword [esi + 0x228], 8
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x34]
test dx, dx
lea ecx, [ecx + eax*4]
cmove ecx, edi
add ecx, 0xfffffff4
test dx, dx
cmove ecx, edi
mov dword [esi + 0x14], ecx
jmp 0x1002a913
cmp dword [esi + 0x138], 0
je 0x1002a8c9
mov eax, dword [esi + 0x138]
shl eax, 3
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0x16c]
call fcn.100985c0
add esp, 0xc
mov dword [esi + 0x228], 0x10
lea eax, [esi + 0x128]
mov dword [esi + 0x228], 0x10
push eax
call fcn.1007ae10
add esp, 4
mov eax, dword [esi + 0x12c]
test eax, eax
je 0x1002a903
shl eax, 2
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0x128]
call fcn.100985c0
add esp, 0xc
movzx eax, byte [esi + 0x28]
jmp 0x10029099
mov dword [esi + 0x14], 0
mov byte [esi + 0x3f], 1
mov dword [esi + 0x228], 8
push 0
push 0x101b1e9c
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
mov edi, 0
test eax, eax
mov dword [esi + 4], edx
cmove edi, ecx
mov dword [esi + 8], edi
je 0x1002a95f
test ecx, ecx
je 0x1002a95f
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 8], 0
je 0x1002ac8b
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 4]
lea edx, [esi + 0xb0]
mov dword [esi + 0x228], 0xf
test eax, eax
lea eax, [eax + 4]
mov dword [esi + 0xb0], ecx
mov dword [esi + 0xb4], edi
cmove eax, edx
push eax
call fcn.10033630
add esp, 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x14]
cmp dword [esi + 4], 0
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 8]
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edx
mov byte [ecx], 0
je 0x1002a9d3
push 1
push dword [esi + 4]
push dword [esi + 8]
call fcn.100985c0
add esp, 0xc
mov edx, dword [esi + 0xf8]
mov ecx, dword [esi + 0xf0]
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1b], 1
mov dword [esi + 0x228], 9
mov dword [esi + 0xa8], edx
call fcn.1002c720
mov dword [esi + 8], eax
mov dword [esi + 0x44], edx
cmp dword [esi + 8], 0
je 0x1002ac66
mov eax, dword [esi + 8]
movsd xmm0, qword [esi + 0xf0]
mov dword [esi + 0x228], 0xe
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0x44]
movsd qword [esi + 0x150], xmm0
movq xmm0, qword [esi + 0x98]
mov dword [esi + 0x104], eax
mov eax, dword [esi + 0xf8]
movq qword [esi + 0xb0], xmm0
mov dword [esi + 0x158], eax
mov eax, dword [esi + 0xa0]
mov dword [esi + 0xb8], eax
lea eax, [esi + 0xb0]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1000b9d0
add esp, 8
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
mov edi, 0
test eax, eax
mov dword [esi + 0x34], edx
cmove edi, ecx
mov dword [esi + 4], edi
je 0x1002aa9e
test ecx, ecx
je 0x1002aa9e
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 4], 0
je 0x1002ac13
mov eax, dword [esi + 4]
cmp dword [esi + 0x94], 1
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x144], eax
mov dword [esi + 0x148], ecx
jne 0x1002abb8
mov ecx, dword [esi + 0x40]
mov al, 1
mov dword [esi + 0x94], eax
cmp byte [ecx], 0x31
je 0x1002abc2
mov eax, dword [esi + 0x40]
cmp byte [eax], 0x32
sete al
add al, al
mov dword [esi + 0x94], eax
jmp 0x1002abc2
lea eax, [esi + 0xd8]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x1002abb1
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0xd8]
jmp 0x1002aba9
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x1002ab5e
push 1
push eax
push dword [esi + 4]
jmp 0x1002ab56
mov eax, dword [esi + 0x8c]
cmp dword [esi + 0x13c], 0
mov byte [eax], 0
je 0x1002ab5e
push 1
push dword [esi + 0x13c]
push dword [esi + 0x8c]
call fcn.100985c0
add esp, 0xc
lea eax, [esi + 0x98]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x1002ab90
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x98]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [eax], 0
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x1002abb1
push 1
push eax
push dword [esi + 0xd0]
call fcn.100985c0
add esp, 0xc
xor ebx, ebx
jmp 0x1002b081
mov dword [esi + 0x94], 0
mov byte [esi + 0x93], 1
mov dword [esi + 0x228], 0xc
push 0xa
push dword [esi + 0xec]
push dword [esi + 0xac]
lea eax, [esi + 0x50]
push eax
call fcn.101854c0
add esp, 0x10
cmp byte [esi + 0x50], 0
je 0x1002ad25
mov eax, dword [esi + 4]
cmp dword [esi + 0x34], 0
mov byte [eax], 0
je 0x1002ac13
push 1
push dword [esi + 0x34]
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
lea eax, [esi + 0x150]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0x154]
test eax, eax
je 0x1002ac45
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x150]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [eax], 0
mov eax, dword [esi + 0x104]
test eax, eax
je 0x1002ac66
push 1
push eax
push dword [esi + 0x100]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x128]
mov byte [eax], 0
mov ecx, dword [esi + 0x12c]
test ecx, ecx
je 0x1002ac85
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x1002acd8
lea eax, [esi + 0xf0]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x1002acbd
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0xf0]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x1002acd8
push 1
push eax
push dword [esi + 0x98]
call fcn.100985c0
add esp, 0xc
mov dword [esi + 0x228], 5
lea eax, [esi + 0xd8]
mov dword [esi + 0x228], 5
push eax
call fcn.1007ae10
add esp, 4
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x1002ad1c
shl eax, 2
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0xd8]
call fcn.100985c0
add esp, 0xc
movzx eax, byte [esi + 0x28]
jmp 0x10029099
mov eax, dword [esi + 0x54]
mov dword [esi + 0x228], 0xd
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xb4], eax
push 0
push 0x101b1e9c
lea eax, [esi + 0x50]
push eax
call fcn.10177030
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edi, dword [esi + 0x58]
mov ebx, 0
test eax, eax
cmove ebx, ecx
je 0x1002ad82
test ecx, ecx
je 0x1002ad82
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
test ebx, ebx
je 0x1002b164
mov eax, dword [esi + 0xf8]
lea ecx, [esi + 0x78]
movq xmm0, qword [esi + 0xf0]
mov edx, dword [esi + 4]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x10]
movq qword [ecx + 8], xmm0
mov ecx, dword [esi + 0x34]
mov word [esi + 0x50], ax
mov eax, dword [esi + 0xac]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x94]
mov byte [esi + 0x58], al
mov word [esi + 0x59], 0
mov dword [esi + 0x5c], edx
mov dword [esi + 0x60], ecx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x2c]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], ecx
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x74], edx
mov dword [esi + 0x78], ecx
mov ecx, dword [edi + 0x114]
mov edx, dword [esi + 0xa8]
cmp ecx, dword [edi + 0x110]
mov dword [esi + 0x7c], edx
mov dword [esi + 4], ecx
jne 0x1002ae2d
mov dword [esi + 0x228], 0xb
push dword [esi + 4]
push dword [esi + 0x140]
call fcn.10006a70
add esp, 8
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x114]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x88]
imul ecx, ecx, 0x3c
mov eax, dword [edi + 0x10c]
mov dword [eax + ecx + 0x38], edx
movsd xmm0, qword [esi + 0x80]
movsd qword [eax + ecx + 0x30], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [eax + ecx + 0x28], xmm0
movsd xmm0, qword [esi + 0x70]
movsd qword [eax + ecx + 0x20], xmm0
movsd xmm0, qword [esi + 0x68]
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esi + 0x60]
movsd qword [eax + ecx + 0x10], xmm0
movq xmm0, qword [esi + 0x50]
movq xmm1, qword [esi + 0x58]
movq qword [eax + ecx + 8], xmm1
movq qword [eax + ecx], xmm0
inc dword [edi + 0x114]
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x228], 9
push dword [esi + 4]
push dword [esi + 0x10]
push dword [esi + 0x17c]
call fcn.10085370
add esp, 0xc
mov eax, dword [esi + 0x114]
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x118]
push 0
mov dword [esi + 8], eax
push eax
call fcn.100061f0
add esp, 8
mov dword [esi + 0x14], edx
mov edi, dword [esi + 8]
mov ebx, eax
mov dword [esi + 0x10], eax
push edi
push dword [esi + 0x1c]
push eax
call fcn.10193640
add esp, 0xc
test edi, edi
je 0x1002b217
cmp dword [esi + 8], 8
mov ecx, dword [esi + 0x10]
jb 0x1002b1fa
xor eax, eax
cmp dword [esi + 8], 0x20
jb 0x1002afa4
mov eax, dword [esi + 8]
lea ecx, [ebx + 0x10]
and eax, 0xffffffe0
mov edx, eax
movdqu xmm1, xmmword [ecx - 0x10]
movdqu xmm0, xmmword [ecx]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [ecx - 0x10], xmm4
movdqu xmmword [ecx], xmm7
add ecx, 0x20
add edx, 0xffffffe0
jne 0x1002af27
cmp dword [esi + 8], eax
je 0x1002b217
test byte [esi + 8], 0x18
je 0x1002b1f6
mov edi, dword [esi + 8]
lea edx, [ebx + eax]
and edi, 0xfffffff8
lea ecx, [ebx + edi]
sub eax, edi
mov dword [esi + 0x1c], edi
movq xmm0, qword [edx]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edx], xmm2
add edx, 8
add eax, 8
jne 0x1002afb5
mov eax, dword [esi + 0x1c]
cmp dword [esi + 8], eax
jne 0x1002b1fa
jmp 0x1002b217
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x1002b02c
push 1
push eax
push dword [esi + 0x10]
jmp 0x1002b024
mov eax, dword [esi + 0x40]
cmp dword [esi + 0x10], 0
mov byte [eax], 0
je 0x1002b02c
push 1
push dword [esi + 0x10]
push dword [esi + 0x40]
call fcn.100985c0
add esp, 0xc
lea eax, [esi + 0x98]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x1002b05e
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x98]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov byte [eax], 0
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x1002b07f
push 1
push eax
push dword [esi + 0xd0]
call fcn.100985c0
add esp, 0xc
mov bl, 1
mov eax, dword [esi + 0x1cc]
mov byte [eax], 0
mov ecx, dword [esi + 0x1d0]
test ecx, ecx
je 0x1002b0a0
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
test bl, bl
jne 0x1002b0f1
lea eax, [esi + 0x144]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0x148]
test eax, eax
je 0x1002b0d6
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x144]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x104]
test eax, eax
je 0x1002b0f1
push 1
push eax
push dword [esi + 0x100]
call fcn.100985c0
add esp, 0xc
cmp dword [esi + 0x138], 0
je 0x1002b121
mov eax, dword [esi + 0x138]
shl eax, 3
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0x16c]
call fcn.100985c0
add esp, 0xc
mov dword [esi + 0x228], 0x11
lea eax, [esi + 0x128]
mov dword [esi + 0x228], 0x11
push eax
call fcn.1007ae10
add esp, 4
mov eax, dword [esi + 0x12c]
test eax, eax
je 0x1002b15b
shl eax, 2
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0x128]
call fcn.100985c0
add esp, 0xc
movzx eax, byte [esi + 0x28]
jmp 0x10029099
mov eax, dword [esi + 0x14]
mov byte [eax], 0
mov eax, dword [esi + 0xb4]
test eax, eax
je 0x1002b185
push 1
push eax
push dword [esi + 0xb0]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov ecx, dword [esi + 0x148]
test ecx, ecx
je 0x1002b1a4
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
lea eax, [esi + 0x150]
push eax
call fcn.1007acc0
add esp, 4
mov eax, dword [esi + 0x154]
test eax, eax
je 0x1002b1d6
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
push 4
push ecx
push dword [esi + 0x150]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x100]
mov byte [eax], 0
mov ecx, dword [esi + 0x104]
test ecx, ecx
je 0x1002acd8
push 1
push ecx
push eax
jmp 0x1002acd0
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 8]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002b1fd
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x58], eax
mov eax, dword [ecx + 0xfc]
cmp eax, dword [ecx + 0xf8]
jne 0x1002b25c
mov dword [esi + 0x228], 0xa
push eax
push dword [esi + 0x190]
call fcn.100069c0
add esp, 8
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0xfc]
mov edi, dword [esi + 0x2c]
mov edx, dword [esi + 0x58]
lea eax, [eax + eax*2]
mov ecx, dword [edi + 0xf4]
mov dword [ecx + eax*4 + 8], edx
movq xmm0, qword [esi + 0x50]
movq qword [ecx + eax*4], xmm0
inc dword [edi + 0xfc]
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x228], 9
mov eax, dword [esi + 0x114]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x118]
push 0
mov dword [esi + 8], eax
push eax
call fcn.100061f0
add esp, 8
mov dword [esi + 0x14], edx
mov edi, dword [esi + 8]
mov ebx, eax
mov dword [esi + 0x10], eax
push edi
push dword [esi + 0x1c]
push eax
call fcn.10193640
add esp, 0xc
test edi, edi
je 0x1002b3db
cmp dword [esi + 8], 8
mov ecx, dword [esi + 0x10]
jb 0x1002b3be
xor eax, eax
cmp dword [esi + 8], 0x20
jb 0x1002b367
mov eax, dword [esi + 8]
lea ecx, [ebx + 0x10]
and eax, 0xffffffe0
mov edx, eax
movdqu xmm1, xmmword [ecx - 0x10]
movdqu xmm0, xmmword [ecx]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [ecx - 0x10], xmm4
movdqu xmmword [ecx], xmm7
add ecx, 0x20
add edx, 0xffffffe0
jne 0x1002b2f2
cmp dword [esi + 8], eax
je 0x1002b3db
test byte [esi + 8], 0x18
je 0x1002b3ba
mov edi, dword [esi + 8]
lea edx, [ebx + eax]
and edi, 0xfffffff8
lea ecx, [ebx + edi]
sub eax, edi
mov dword [esi + 0x1c], edi
movq xmm0, qword [edx]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edx], xmm2
add edx, 8
add eax, 8
jne 0x1002b378
mov eax, dword [esi + 0x1c]
cmp dword [esi + 8], eax
jne 0x1002b3be
jmp 0x1002b3db
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 8]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002b3c1
mov eax, dword [esi + 0x10]
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x228], 9
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x58], eax
push dword [esi + 4]
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x1f8]
push eax
call fcn.10084450
add esp, 0xc
lea eax, [esi + 0xd8]
mov dword [esi + 0x228], 4
push eax
call fcn.1007ae10
add esp, 4
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x1002b44f
shl eax, 2
lea eax, [eax + eax*4]
push 4
push eax
push dword [esi + 0xd8]
call fcn.100985c0
add esp, 0xc
movzx eax, byte [esi + 0x28]
jmp 0x10029099
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x23
jne 0x10028cce
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x10028cce
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6f
jne 0x10028cce
movzx eax, byte [eax + 3]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x66
jne 0x10028cce
jmp 0x1002bcfb
lea eax, [esi + 0x28]
mov byte [eax], 1
mov eax, dword [esi + 0x1c0]
mov byte [esi + 0xf], 1
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x1c8]
push 0
mov dword [esi + 8], eax
push eax
call fcn.100061f0
add esp, 8
mov dword [esi + 0x10], edx
mov edi, dword [esi + 8]
mov ebx, eax
mov dword [esi + 4], eax
push edi
push dword [esi + 0x14]
push eax
call fcn.10193640
add esp, 0xc
test edi, edi
je 0x1002b621
cmp dword [esi + 8], 8
mov ecx, dword [esi + 4]
jb 0x1002b604
xor eax, eax
cmp dword [esi + 8], 0x20
jb 0x1002b5ad
mov eax, dword [esi + 8]
lea ecx, [ebx + 0x10]
and eax, 0xffffffe0
mov edx, eax
movdqu xmm1, xmmword [ecx - 0x10]
movdqu xmm0, xmmword [ecx]
movdqa xmm4, xmmword [0x101b1040]
movdqa xmm5, xmmword [0x101b1050]
movdqa xmm6, xmmword [0x101b1060]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm3, xmm4
paddb xmm2, xmm4
movdqa xmm4, xmm2
movdqa xmm7, xmm3
pminub xmm4, xmm5
pminub xmm7, xmm5
pcmpeqb xmm4, xmm2
pcmpeqb xmm7, xmm3
pand xmm4, xmm6
pand xmm7, xmm6
por xmm4, xmm1
por xmm7, xmm0
movdqu xmmword [ecx - 0x10], xmm4
movdqu xmmword [ecx], xmm7
add ecx, 0x20
add edx, 0xffffffe0
jne 0x1002b538
cmp dword [esi + 8], eax
je 0x1002b621
test byte [esi + 8], 0x18
je 0x1002b600
mov edi, dword [esi + 8]
lea edx, [ebx + eax]
and edi, 0xfffffff8
lea ecx, [ebx + edi]
sub eax, edi
mov dword [esi + 0x14], edi
movq xmm0, qword [edx]
movdqa xmm1, xmm0
paddb xmm1, xmmword [0x101b1070]
movdqa xmm2, xmm1
pmaxub xmm2, xmmword [0x101b1080]
pcmpeqb xmm2, xmm1
pandn xmm2, xmmword [0x101b1090]
por xmm2, xmm0
movq qword [edx], xmm2
add edx, 8
add eax, 8
jne 0x1002b5be
mov eax, dword [esi + 0x14]
cmp dword [esi + 8], eax
jne 0x1002b604
jmp 0x1002b621
add eax, ebx
mov ecx, eax
add ebx, dword [esi + 8]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, ebx
jne 0x1002b607
mov eax, dword [esi + 4]
movsd xmm0, qword [esi + 0x210]
movq xmm1, qword [esi + 0x200]
mov byte [esi + 0xf], 0
mov dword [esi + 0x228], 3
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x10]
movsd qword [esi + 0x68], xmm0
movsd xmm0, qword [esi + 0x208]
movq qword [esi + 0x58], xmm1
mov dword [esi + 0x154], eax
mov eax, dword [esi + 8]
movsd qword [esi + 0x60], xmm0
movq xmm0, qword [esi + 0x1f8]
mov dword [esi + 0x158], eax
lea eax, [esi + 0x50]
movq qword [esi + 0x50], xmm0
push eax
lea eax, [esi + 0x150]
push eax
push dword [esi + 0x48]
lea eax, [esi + 0xb0]
push eax
call fcn.100841d0
add esp, 0x10
cmp dword [esi + 0xb0], 0
je 0x1002b6b7
lea eax, [esi + 0xb0]
mov byte [esi + 0xf], 0
push eax
call fcn.10001f20
add esp, 4
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x10028cce
push 1
push eax
push dword [esi + 0x1c0]
call fcn.100985c0
add esp, 0xc
jmp 0x10028cce
lea eax, [esi + 0x1bc]
jmp 0x1002b4d0
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x23
jne 0x1002b753
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x1002b753
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6f
jne 0x1002b753
movzx eax, byte [eax + 3]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x66
sete bl
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002b75f
jmp 0x1002b770
xor ebx, ebx
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 4]
test eax, eax
je 0x1002b770
push 1
push eax
push dword [esi + 0x1ec]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x220]
mov dword fs:[0], eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esi + 4], 0x11
mov cl, 1
mov dword [esi + 8], ecx
je 0x1002b8ad
cmp dword [esi + 4], 8
jne 0x1002bd09
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x23
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 1]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x63
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 2]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x6c
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 3]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x61
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 4]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x73
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 5]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x73
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 6]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 7]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x73
jne 0x1002bd09
mov eax, dword [esi + 0x2c]
cmp dword [eax + 0xf0], 0
jne 0x10028c92
jmp 0x1002bd09
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x23
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 1]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x64
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 2]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 3]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x70
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 4]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x72
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 5]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 6]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x63
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 7]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x61
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 8]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 9]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xa]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x64
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xb]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x5f
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xc]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xd]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x6e
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xe]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x75
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0xf]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x6d
jne 0x1002bd09
mov eax, dword [esi + 0x24]
movzx eax, byte [eax + 0x10]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x73
jne 0x1002bd09
cmp byte [esi + 0x1bc], 0
jne 0x10028c92
lea eax, [esi + 0x194]
mov dword [esi + 0x228], 1
push eax
push eax
call fcn.10031db0
add esp, 8
mov dword [esi + 4], eax
mov dword [esi + 0x48], edx
cmp dword [esi + 4], 0
je 0x10028c92
cmp dword [esi + 0x48], 0
je 0x1002bbf5
cmp dword [esi + 0x48], 4
jne 0x1002bb81
mov eax, dword [esi + 4]
movzx eax, byte [eax]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x23
jne 0x1002bb87
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x1002bb87
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6f
jne 0x1002bb87
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x66
jne 0x1002bb87
jmp 0x1002bc81
mov eax, dword [esi + 4]
movzx eax, byte [eax]
test al, al
js 0x1002bb90
movzx eax, al
jmp 0x1002bbe9
mov edx, dword [esi + 4]
mov ecx, eax
and cl, 0x1f
movzx ecx, cl
movzx edi, byte [edx + 1]
and edi, 0x3f
cmp al, 0xdf
jbe 0x1002bbd9
mov edx, dword [esi + 4]
shl edi, 6
movzx edx, byte [edx + 2]
and edx, 0x3f
or edx, edi
cmp al, 0xf0
jb 0x1002bbe2
mov eax, dword [esi + 4]
and ecx, 7
shl edx, 6
shl ecx, 0x12
movzx eax, byte [eax + 3]
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
jne 0x1002bbe9
jmp 0x1002bbf5
shl ecx, 6
or ecx, edi
mov eax, ecx
jmp 0x1002bbe9
shl ecx, 0xc
or edx, ecx
mov eax, edx
add eax, 0xffffffdd
cmp eax, 2
jb 0x1002bdb8
push dword [esi + 0x48]
push dword [esi + 4]
call fcn.10052840
add esp, 8
test edx, edx
je 0x1002bac6
push dword [esi + 0x48]
push dword [esi + 4]
lea eax, [esi + 0x50]
push eax
call fcn.1005ae50
add esp, 0xc
cmp dword [esi + 0x50], 0
je 0x1002bd02
mov eax, dword [esi + 0x60]
test eax, eax
mov dword [esi + 4], eax
je 0x1002bac6
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0x68]
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x228], 0x24
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x2c]
push edi
push dword [esi + 4]
push eax
call fcn.1002c910
add esp, 0xc
cmp dword [esi + 0x48], 0
je 0x1002bac6
mov eax, dword [esi + 0x48]
shl eax, 4
push 4
push eax
push dword [esi + 4]
call fcn.100985c0
add esp, 0xc
jmp 0x1002bac6
mov byte [esi + 0x1bc], 1
jmp 0x10028c92
mov byte [esi + 0x1bc], 1
mov edi, dword [esi + 0x124]
test edi, edi
je 0x1002bcc5
mov ebx, dword [esi + 0x11c]
add ebx, 4
jmp 0x1002bcaf
add ebx, 0xc
dec edi
je 0x1002bcc5
mov eax, dword [ebx]
test eax, eax
je 0x1002bca9
push 1
push eax
push dword [ebx - 4]
call fcn.100985c0
add esp, 0xc
jmp 0x1002bca9
mov eax, dword [esi + 0x120]
test eax, eax
je 0x1002bce6
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [esi + 0x11c]
call fcn.100985c0
add esp, 0xc
mov bl, 1
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002b75f
jmp 0x1002b770
mov byte [esi + 0x1bc], 1
mov dword [esi + 8], 0
mov edi, dword [esi + 0x124]
test edi, edi
je 0x1002bd3a
mov ebx, dword [esi + 0x11c]
add ebx, 4
jmp 0x1002bd24
add ebx, 0xc
dec edi
je 0x1002bd3a
mov eax, dword [ebx]
test eax, eax
je 0x1002bd1e
push 1
push eax
push dword [ebx - 4]
call fcn.100985c0
add esp, 0xc
jmp 0x1002bd1e
mov eax, dword [esi + 0x120]
test eax, eax
je 0x1002bd5b
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [esi + 0x11c]
call fcn.100985c0
add esp, 0xc
mov eax, dword [esi + 0x38]
mov ebx, dword [esi + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x1002b75f
jmp 0x1002b770
mov dword [esi + 0x228], 1
call fcn.10176df0
jmp 0x1002bef7
mov dword [esi + 0x228], 1
push dword [esi + 4]
push 1
call fcn.101aefe0
add esp, 8
jmp 0x1002bef7
push 0x101b1fdc
push edx
push 1
push edx
push eax
call fcn.101af790
add esp, 0x14
jmp 0x1002bef7
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x48]
call fcn.10026c20
test al, al
jne 0x1002b898
jmp 0x1002bd09
push 0x101b1f90
push 0x101b1e9c
lea eax, [esi + 0x50]
push eax
push 0x46
push 0x101b1ef8
call fcn.101af4e0
add esp, 0x14
jmp 0x1002bef7
mov dword [esi + 0x228], 0x23
call fcn.10176df0
jmp 0x1002bef7
mov dword [esi + 0x228], 0x23
push dword [esi + 0x14]
push 1
call fcn.101aefe0
add esp, 8
jmp 0x1002bef7
mov byte [esi + 0x22], 1
mov byte [esi + 0x23], 1
mov dword [esi + 0x228], 0x15
call fcn.10176df0
jmp 0x1002bef7
mov byte [esi + 0x22], 1
mov byte [esi + 0x23], 1
mov dword [esi + 0x228], 0x15
push edi
push 4
call fcn.101aefe0
add esp, 8
jmp 0x1002bef7
mov dword [esi + 0x228], 0x1f
call fcn.10176df0
jmp 0x1002bef7
mov dword [esi + 0x228], 0x1f
push dword [esi + 0x14]
push 1
call fcn.101aefe0
add esp, 8
jmp 0x1002bef7
mov dword [esi + 0x228], 0x1d
call fcn.10176df0
jmp 0x1002bef7
mov dword [esi + 0x228], 0x1d
push dword [esi + 4]
push 1
call fcn.101aefe0
add esp, 8
jmp 0x1002bef7
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
call fcn.10176df0
jmp 0x1002bef7
mov byte [esi + 0xc], 1
mov byte [esi + 0xd], 1
mov byte [esi + 0xe], 0
mov dword [esi + 0x228], 0x17
push dword [esi + 4]
push 1
call fcn.101aefe0
add esp, 8
ud2