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

Disassembly:
jmp 0x100835a0
sub esp, 0xc8
mov eax, dword [0x1029e0c0]
xor eax, esp
mov dword [esp + 0xc4], eax
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xd8]
push edi
mov edi, dword [esp + 0xe4]
add edi, edx
mov dword [esp + 0x74], esi
cmp dword [esp + 0xf0], 0
mov eax, dword [esi + 0x74b0]
mov ebx, dword [esi + 0x7578]
mov ebp, dword [esi + 0x75f8]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x74b4]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x74b8]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x4c], eax
je 0x10085191
push dword [esp + 0xec]
mov dword [esi + 0x750c], 1
mov eax, dword [esi + 0x682c]
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0x6830]
mov dword [esp + 0xd0], eax
mov eax, dword [esi + 0x6834]
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xa0]
push ecx
push eax
call fcn.1007f940
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x10083685
mov esi, 0xffffffec
jmp 0x10085201
push dword [esi]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.100869d0
push dword [esi + 8]
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.100869d0
push dword [esi + 4]
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.100869d0
mov eax, dword [esp + 0xd4]
add esp, 0x24
mov ecx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xbc]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov bl, byte [edx + 2]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xb8]
mov esi, dword [ecx + 4]
mov bh, byte [ecx + 2]
mov byte [esp + 0x2f], bl
mov edi, dword [ebp + eax*8 + 4]
mov bl, byte [ebp + eax*8 + 2]
movzx ebp, word [edx]
mov dword [esp + 0x40], ebp
movzx ebp, word [ecx]
movzx ecx, byte [ecx + 3]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0xbc]
mov dword [esp + 0x30], ecx
mov ecx, edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], esi
mov esi, dword [edx + 4]
movzx edx, byte [edx + 3]
mov dword [esp + 0x54], ebp
movzx ebp, word [edi + eax*8]
movzx eax, byte [ecx + eax*8 + 3]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], esi
mov dword [esp + 0x64], esi
mov byte [esp + 0x1f], bh
mov dword [esp + 0x38], ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], eax
cmp bl, 1
jbe 0x100838dd
cmp dword [esp + 0xf4], 0
je 0x10083831
cmp bl, 0x19
jb 0x10083831
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
mov edx, ebp
movzx eax, bl
sub eax, 5
lea esi, [ecx + eax]
and ecx, 0x1f
shl edx, cl
neg eax
and eax, 0x1f
mov ecx, eax
mov eax, ebp
shr edx, cl
mov ecx, esi
shl edx, 5
add edx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x10], edi
cmp esi, 0x20
ja 0x1008381b
cmp edi, dword [esp + 0xac]
jb 0x100837e0
mov eax, ecx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x10083805
mov ebx, dword [esp + 0xa8]
cmp edi, ebx
je 0x1008381b
shr esi, 3
mov eax, edi
sub eax, esi
cmp eax, ebx
jae 0x100837fa
mov esi, edi
sub esi, ebx
lea eax, [esi*8]
sub edi, esi
sub ecx, eax
mov ebp, dword [edi]
mov eax, ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
lea esi, [ecx + 5]
and ecx, 0x1f
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x100838bb
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
mov edx, ebp
movzx eax, bl
lea esi, [ecx + eax]
and ecx, 0x1f
neg eax
shl edx, cl
and eax, 0x1f
mov ecx, eax
shr edx, cl
add edx, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], edi
cmp esi, 0x20
ja 0x100838bb
cmp edi, dword [esp + 0xac]
jb 0x10083880
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x100838a7
mov ebx, dword [esp + 0xa8]
cmp edi, ebx
je 0x100838bb
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x1008389c
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
mov bh, byte [esp + 0x1f]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x44], ecx
jmp 0x100839a8
mov ebp, dword [esp + 0x9c]
xor eax, eax
test esi, esi
sete al
test bl, bl
jne 0x10083933
mov ecx, dword [esp + eax*4 + 0xc8]
mov eax, esi
mov edi, dword [esp + 0xa4]
neg eax
mov esi, dword [esp + 0xa0]
sbb eax, eax
mov dword [esp + 0x24], ecx
and eax, 4
mov dword [esp + 0x10], edi
mov eax, dword [esp + eax + 0xc8]
mov dword [esp + 0x44], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], ecx
jmp 0x100839b6
mov ecx, dword [esp + 0xa0]
mov edi, ebp
lea esi, [ecx + 1]
and ecx, 0x1f
shl edi, cl
mov ecx, dword [esp + 0xc8]
shr edi, 0x1f
add edi, eax
mov dword [esp + 0xa0], esi
add edi, dword [esp + 0x58]
mov dword [esp + 0x44], ecx
cmp edi, 3
jne 0x10083976
lea eax, [ecx - 1]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x1008398f
mov eax, dword [esp + edi*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
cmp edi, 1
je 0x1008399d
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd0], eax
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], ecx
test bh, bh
je 0x100839dc
movzx edx, bh
mov ecx, esi
mov eax, ebp
lea esi, [edx + ecx]
and ecx, 0x1f
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x68], ecx
mov dl, byte [esp + 0x2f]
movzx ecx, bh
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x10083a54
cmp esi, 0x20
ja 0x10083a54
mov ebx, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x10083a22
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
mov dword [esp + 0x10], edi
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x10083a5b
cmp edi, ebx
je 0x10083a5b
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x10083a37
mov ecx, edi
sub ecx, ebx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], edi
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add esi, eax
mov dword [esp + 0x9c], ebp
jmp 0x10083a5b
mov ebx, dword [esp + 0xa8]
test dl, dl
je 0x10083a85
movzx edx, dl
mov ecx, esi
mov eax, ebp
lea esi, [ecx + edx]
and ecx, 0x1f
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x64], ecx
cmp esi, 0x20
ja 0x10083ad3
cmp edi, dword [esp + 0xac]
jb 0x10083a9f
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x10083abf
cmp edi, ebx
je 0x10083ad3
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x10083ab4
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x18]
lea edx, [eax + esi]
mov esi, ebp
mov ecx, edx
neg ecx
and ecx, 0x1f
shr esi, cl
and esi, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x40]
movzx eax, ax
add esi, eax
mov eax, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0xb0], esi
mov ecx, edx
neg ecx
mov esi, ebp
and ecx, 0x1f
shr esi, cl
mov ecx, edx
and esi, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x54]
movzx eax, ax
add esi, eax
mov dword [esp + 0x54], esi
mov dword [esp + 0xc0], esi
mov esi, ebp
cmp edx, 0x20
ja 0x10083b89
cmp edi, dword [esp + 0xac]
jb 0x10083b4a
mov eax, ecx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x10083b73
cmp edi, ebx
jne 0x10083b57
cmp edx, 0x20
jb 0x10083b89
mov ecx, edx
jmp 0x10083b89
mov edx, ecx
mov eax, edi
shr edx, 3
sub eax, edx
cmp eax, ebx
jae 0x10083b68
mov edx, edi
sub edx, ebx
lea eax, [edx*8]
sub edi, edx
sub ecx, eax
mov ebp, dword [edi]
mov esi, ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
movq xmm0, qword [esp + 0x64]
movq qword [esp + 0x78], xmm0
movq qword [esp + 0x64], xmm0
lea ebx, [eax + ecx]
mov ecx, ebx
mov dword [esp + 0x48], ebx
neg ecx
mov dword [esp + 0xa0], ebx
and ecx, 0x1f
shr esi, cl
and esi, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
movzx eax, ax
add esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], esi
add eax, ecx
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x74]
cmp eax, dword [esi + 0x75f8]
ja 0x1008448a
nop dword [eax + eax]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
add esi, edx
mov dword [esp + 0x18], esi
sub esi, dword [esp + 0x24]
lea eax, [edx + ecx]
mov edx, dword [esp + 0x68]
lea ecx, [eax - 0x20]
add edx, dword [esp + 0x64]
movq qword [esp + 0x90], xmm0
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], esi
cmp eax, dword [esp + 0x60]
ja 0x10083ebb
mov eax, dword [esp + 0x20]
add eax, edx
cmp eax, ecx
ja 0x10083ebb
mov ecx, dword [esp + 0x5c]
lea eax, [edx + 0x20]
sub ecx, dword [esp + 0x20]
cmp ecx, eax
jb 0x10083ebb
mov ecx, dword [esp + 0x34]
push ecx
push dword [esp + 0x24]
call fcn.10080150
mov eax, dword [esp + 0x6c]
add esp, 8
cmp eax, 0x10
jbe 0x10083ccc
mov esi, dword [esp + 0x20]
lea edx, [eax - 0x10]
mov eax, dword [esp + 0x34]
add esi, 0x10
add eax, 0x10
push eax
push esi
lea ecx, [esi + edx]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call fcn.10080150
add esp, 8
cmp edx, 0x10
jle 0x10083cc8
mov edx, dword [esp + 0x38]
add esi, 0x10
mov ebp, dword [esp + 0x3c]
add edx, 0x10
push edx
push esi
call fcn.10080150
add edx, 0x10
add esi, 0x10
push edx
push esi
call fcn.10080150
add esi, 0x10
add esp, 0x10
add edx, 0x10
cmp esi, ebp
jb 0x10083ca7
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
mov eax, edx
sub eax, dword [esp + 0x50]
cmp ecx, eax
jbe 0x10083d5a
mov eax, edx
sub eax, dword [esp + 0x70]
cmp ecx, eax
ja 0x1008367b
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x68]
add esi, eax
mov dword [esp + 0x14], esi
lea eax, [esi + ecx]
cmp eax, dword [esp + 0x4c]
ja 0x10083d2b
push ecx
push esi
push edx
call fcn.10005029
mov esi, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x34]
jmp 0x10083f05
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
sub esi, eax
push esi
push eax
push edx
call fcn.10005029
mov edx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [esp + 0x68]
add edx, esi
mov ecx, dword [esp + 0x24]
sub eax, esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x18], edx
jmp 0x10083d61
mov eax, dword [esp + 0x94]
mov dword [esp + 0x14], eax
cmp ecx, 0x10
jb 0x10083dc2
add eax, edx
push esi
push edx
mov dword [esp + 0x40], eax
call fcn.10080150
add esp, 8
cmp dword [esp + 0x14], 0x10
jle 0x10083db5
mov edi, dword [esp + 0x38]
add edx, 0x10
add esi, 0x10
nop dword [eax + eax]
push esi
push edx
call fcn.10080150
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, edi
jb 0x10083d90
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x10083f05
cmp ecx, 8
jae 0x10083e02
movzx eax, byte [esi]
mov byte [edx], al
movzx eax, byte [esi + 1]
mov byte [edx + 1], al
movzx eax, byte [esi + 2]
mov byte [edx + 2], al
movzx eax, byte [esi + 3]
add esi, dword [ecx*4 + 0x10288ea8]
mov byte [edx + 3], al
lea eax, [edx + 4]
push esi
push eax
call fcn.10080170
mov eax, dword [esp + 0x2c]
add esp, 8
sub esi, dword [eax*4 + str._b_b_b_a_b_t_n_v]
jmp 0x10083e10
push esi
push edx
call fcn.10080180
mov edx, dword [esp + 0x20]
add esp, 8
mov eax, dword [esp + 0x14]
cmp eax, 8
jbe 0x10083db5
add eax, 0xfffffff8
lea ecx, [esi + 8]
mov dword [esp + 0x38], eax
lea esi, [edx + 8]
add eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov eax, esi
sub eax, ecx
cmp eax, 0x10
jge 0x10083e66
mov edi, dword [esp + 0x18]
mov ebp, ecx
sub ebp, esi
lea eax, [esi + ebp]
push eax
push esi
call fcn.10080180
add esi, 8
add esp, 8
cmp esi, edi
jb 0x10083e41
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x10083f05
push ecx
push esi
call fcn.10080150
add esp, 8
cmp dword [esp + 0x38], 0x10
jle 0x10083db5
mov ebp, dword [esp + 0x18]
lea edx, [esi + 0x10]
mov esi, dword [esp + 0x14]
add esi, 0x10
nop dword [eax]
push esi
push edx
call fcn.10080150
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x10083e90
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x10083f05
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x40]
push dword [esp + 0x74]
push dword [esp + 0x58]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x48]
add eax, 0xffffffe0
push eax
push dword [esp + 0x80]
push dword [esp + 0x48]
call fcn.100867a0
mov ecx, dword [esp + 0x68]
add esp, 0x2c
mov esi, eax
mov dword [esp + 0x34], ecx
cmp esi, 0xffffff88
ja 0x10085201
mov edx, dword [esp + 0x20]
add edx, esi
mov esi, dword [esp + 0xf0]
sub esi, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0xf0], esi
je 0x10084497
cmp ebx, 0x20
ja 0x10083f87
cmp edi, dword [esp + 0xac]
jb 0x10083f49
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10083f6c
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x10083f87
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x10083f65
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0xbc]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x84], eax
mov esi, dword [ebp + edx*8 + 4]
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xc4]
mov ecx, dword [eax + edi*8 + 4]
mov al, byte [eax + edi*8 + 2]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
mov al, byte [ebp + eax*8 + 2]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0xbc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0xb4]
movzx edx, word [edx + edi*8]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x48], edx
movzx edx, word [ebp + edi*8]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x30], edx
movzx edx, word [ebp + edi*8]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [edi + edx*8 + 3]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
movzx edx, byte [edi + edx*8 + 3]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x40], edx
cmp al, 1
jbe 0x1008419e
cmp dword [esp + 0xf4], 0
je 0x10084109
cmp al, 0x19
jb 0x10084109
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, esi
cmp ebx, 0x20
ja 0x100840f2
cmp edi, dword [esp + 0xac]
jb 0x100840b7
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x100840de
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x100840f2
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100840d3
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x1008417c
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
lea edx, [eax + esi]
mov dword [esp + 0x24], edx
cmp ebx, 0x20
ja 0x1008417c
cmp edi, dword [esp + 0xac]
jb 0x10084141
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084168
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x1008417c
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x1008415d
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0xcc], esi
jmp 0x10084248
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x100841da
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + edx*4 + 0xc8]
neg eax
mov dword [esp + 0x24], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xc8]
mov dword [esp + 0x44], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ecx
jmp 0x1008424f
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
lea ecx, [edx + esi]
shr eax, 0x1f
add ecx, eax
mov dword [esp + 0xa0], ebx
cmp ecx, 3
jne 0x10084212
mov ecx, dword [esp + 0xc8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x1008422b
mov eax, dword [esp + ecx*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
cmp ecx, 1
je 0x10084236
mov eax, dword [esp + 0x44]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x44], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], edx
mov al, byte [esp + 0x1f]
test al, al
je 0x1008427f
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x38]
add ecx, eax
mov al, byte [esp + 0x1f]
mov dword [esp + 0x84], ecx
mov dl, byte [esp + 0x2f]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x100842f7
cmp ebx, 0x20
ja 0x100842f7
mov esi, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x100842c5
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x10], edi
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100842fe
cmp edi, esi
je 0x100842fe
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x100842da
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x10], edi
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
jmp 0x100842fe
mov esi, dword [esp + 0xa8]
test dl, dl
je 0x1008432a
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
cmp ebx, 0x20
ja 0x10084374
cmp edi, dword [esp + 0xac]
jb 0x10084344
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084360
cmp edi, esi
je 0x10084374
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084359
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x58]
lea edx, [eax + ebx]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xa0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x48]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], ebx
lea ecx, [edx + eax]
lea ebx, [edx + eax]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x30]
movzx eax, ax
add edx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0xc0], edx
cmp ebx, 0x20
ja 0x10084424
cmp edi, dword [esp + 0xac]
jb 0x100843f0
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084410
cmp edi, esi
je 0x10084424
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084405
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov esi, ebp
mov edx, dword [esp + 0x74]
add ebx, eax
movq xmm0, qword [esp + 0x80]
mov ecx, ebx
neg ecx
mov dword [esp + 0x48], ebx
and ecx, 0x1f
mov dword [esp + 0xa0], ebx
shr esi, cl
and esi, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
movzx eax, ax
add esi, eax
movq qword [esp + 0x78], xmm0
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0xb8], esi
movq qword [esp + 0x64], xmm0
cmp eax, dword [edx + 0x75f8]
jbe 0x10083bf0
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0xf0]
jmp 0x1008449d
movq xmm0, qword [esp + 0x78]
test esi, esi
jle 0x1008512b
mov eax, dword [esp + 0x74]
mov esi, dword [eax + 0x75f8]
sub esi, ecx
je 0x100844ee
mov eax, dword [esp + 0x5c]
sub eax, edx
cmp esi, eax
jbe 0x100844c7
mov esi, 0xffffffba
jmp 0x10085201
push esi
push ecx
push edx
call fcn.10086cc0
mov eax, dword [esp + 0x70]
add esp, 0xc
mov edx, dword [esp + 0x20]
sub eax, esi
add edx, esi
mov dword [esp + 0x64], eax
movq xmm0, qword [esp + 0x64]
mov dword [esp + 0x20], edx
jmp 0x100844f2
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
sub eax, edx
movq qword [esp + 0x90], xmm0
lea ecx, [esi + 0x7600]
mov dword [esp + 0x18], eax
add esi, 0x17600
mov dword [esp + 0x3c], ecx
add ecx, dword [esp + 0x64]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
mov dword [esi + 0x75fc], 0
mov esi, dword [esp + 0x64]
add esi, dword [esp + 0x68]
mov dword [esp + 0x30], esi
cmp ecx, dword [esp + 0x60]
ja 0x10084807
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x10084807
mov ecx, dword [esp + 0x5c]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x20]
cmp ecx, eax
jb 0x10084807
push dword [esp + 0x3c]
push dword [esp + 0x24]
call fcn.10080150
mov eax, dword [esp + 0x6c]
add esp, 8
cmp eax, 0x10
jbe 0x100845f9
mov ecx, dword [esp + 0x3c]
lea edx, [eax - 0x10]
mov eax, dword [esp + 0x20]
add ecx, 0x10
add eax, 0x10
push ecx
push eax
lea ebx, [eax + edx]
mov dword [esp + 0x40], ebx
call fcn.10080150
mov ebx, dword [esp + 0x50]
add esp, 8
cmp edx, 0x10
jle 0x100845f5
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
add edx, 0x20
mov edi, dword [esp + 0x38]
add ebp, 0x20
nop dword [eax]
push ebp
push edx
call fcn.10080150
add ebp, 0x10
add edx, 0x10
push ebp
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add ebp, 0x10
cmp edx, edi
jb 0x100845d0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov eax, ecx
sub eax, dword [esp + 0x50]
cmp edx, eax
jbe 0x10084685
mov eax, ecx
sub eax, dword [esp + 0x70]
cmp edx, eax
ja 0x1008367b
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x68]
add ecx, eax
lea eax, [ecx + edx]
cmp eax, dword [esp + 0x4c]
ja 0x1008464b
push edx
push ecx
push dword [esp + 0x30]
call fcn.10005029
add esp, 0xc
jmp 0x10084842
mov esi, dword [esp + 0x4c]
sub esi, ecx
push esi
push ecx
push dword [esp + 0x30]
call fcn.10005029
mov eax, dword [esp + 0x34]
add esp, 0xc
mov ecx, dword [esp + 0x68]
add eax, esi
mov edx, dword [esp + 0x24]
sub ecx, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
jmp 0x10084698
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
cmp edx, 0x10
jb 0x100846fa
mov edx, dword [esp + 0x14]
push ecx
add edx, eax
push eax
mov dword [esp + 0x40], edx
call fcn.10080150
add esp, 8
cmp dword [esp + 0x14], 0x10
jle 0x10084842
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
add edx, 0x10
mov ebx, dword [esp + 0x38]
add ebp, 0x10
nop
push ebp
push edx
call fcn.10080150
add ebp, 0x10
add edx, 0x10
push ebp
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add ebp, 0x10
cmp edx, ebx
jb 0x100846d0
mov ebx, dword [esp + 0x48]
jmp 0x10084842
cmp edx, 8
jae 0x10084748
mov edi, dword [esp + 0x28]
movzx eax, byte [ecx]
mov byte [edi], al
movzx eax, byte [ecx + 1]
mov byte [edi + 1], al
movzx eax, byte [ecx + 2]
mov byte [edi + 2], al
movzx eax, byte [ecx + 3]
add ecx, dword [edx*4 + 0x10288ea8]
mov byte [edi + 3], al
mov eax, edi
push ecx
add eax, 4
mov dword [esp + 0x1c], ecx
push eax
call fcn.10080170
mov eax, dword [esp + 0x20]
add esp, 8
sub eax, dword [edx*4 + str._b_b_b_a_b_t_n_v]
mov edi, dword [esp + 0x10]
jmp 0x10084756
push ecx
push eax
call fcn.10080180
mov eax, dword [esp + 0x20]
add esp, 8
cmp dword [esp + 0x14], 8
jbe 0x10084842
mov ecx, dword [esp + 0x28]
add eax, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff8
lea edx, [ecx + 8]
add eax, edx
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, dword [esp + 0x18]
cmp eax, 0x10
jge 0x100847b5
mov edi, dword [esp + 0x18]
lea ebp, [ecx + 8]
mov ebx, dword [esp + 0x30]
sub edi, ebp
lea eax, [edi + ebp]
push eax
push ebp
call fcn.10080180
add ebp, 8
add esp, 8
cmp ebp, ebx
jb 0x10084794
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x10]
jmp 0x10084842
push dword [esp + 0x18]
push edx
call fcn.10080150
mov eax, dword [esp + 0x1c]
add esp, 8
add eax, 0xfffffff8
cmp eax, 0x10
jle 0x10084842
mov ebp, dword [esp + 0x18]
add edx, 0x10
mov edi, dword [esp + 0x30]
add ebp, 0x10
nop dword [eax]
push ebp
push edx
call fcn.10080150
add ebp, 0x10
add edx, 0x10
push ebp
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add ebp, 0x10
cmp edx, edi
jb 0x100847e0
mov edi, dword [esp + 0x10]
jmp 0x10084842
push dword [esp + 0x4c]
lea eax, [esp + 0x40]
push dword [esp + 0x74]
push dword [esp + 0x58]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x7c]
movq qword [eax], xmm0
push dword [esp + 0x44]
mov dword [eax + 8], edx
call fcn.10086660
mov esi, eax
add esp, 0x28
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
cmp esi, 0xffffff88
ja 0x10085201
add dword [esp + 0x20], esi
mov esi, dword [esp + 0xf0]
sub esi, 1
mov dword [esp + 0xf0], esi
je 0x100848b6
cmp ebx, 0x20
ja 0x100848b6
cmp edi, dword [esp + 0xac]
jb 0x1008487c
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x1008489f
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100848b6
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x10084898
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
test esi, esi
jle 0x1008512b
nop
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + ebp*8 + 4]
mov al, byte [eax + ebp*8 + 2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xbc]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x54]
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0xc4]
mov al, byte [ecx + eax*8 + 2]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0xbc]
mov al, byte [eax + edx*8 + 2]
mov edx, dword [esp + 0xb4]
movzx edx, word [edx + ebp*8]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x48], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x30], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x54]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], edx
cmp al, 1
jbe 0x10084acd
cmp dword [esp + 0xf4], 0
je 0x10084a3c
cmp al, 0x19
jb 0x10084a3c
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
shl edx, 5
add edx, esi
cmp ebx, 0x20
ja 0x10084a25
cmp edi, dword [esp + 0xac]
jb 0x100849ee
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084a15
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x10084a25
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084a0a
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
add ebx, 5
shl eax, cl
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x10084aab
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
lea edx, [eax + esi]
mov dword [esp + 0x24], edx
cmp ebx, 0x20
ja 0x10084aab
cmp edi, dword [esp + 0xac]
jb 0x10084a74
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084a9b
mov esi, dword [esp + 0xa8]
cmp edi, esi
je 0x10084aab
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084a90
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0xcc], esi
jmp 0x10084b77
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x10084b09
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + edx*4 + 0xc8]
neg eax
mov dword [esp + 0x24], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xc8]
mov dword [esp + 0x44], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ecx
jmp 0x10084b7e
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0xa0], ebx
lea ecx, [eax + edx]
add ecx, esi
cmp ecx, 3
jne 0x10084b41
mov ecx, dword [esp + 0xc8]
xor eax, eax
cmp ecx, 1
sete al
lea edx, [ecx - 1]
add edx, eax
mov dword [esp + 0x24], edx
jmp 0x10084b5a
mov eax, dword [esp + ecx*4 + 0xc8]
xor edx, edx
test eax, eax
sete dl
add edx, eax
mov dword [esp + 0x24], edx
cmp ecx, 1
je 0x10084b65
mov eax, dword [esp + 0x44]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x44], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc8], edx
mov al, byte [esp + 0x1f]
test al, al
je 0x10084bb2
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x28]
add ecx, eax
mov al, byte [esp + 0x1f]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x84], ecx
mov dl, byte [esp + 0x2f]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x10084c22
cmp ebx, 0x20
ja 0x10084c22
mov esi, dword [esp + 0xa8]
cmp edi, dword [esp + 0xac]
jb 0x10084bf4
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x10084c29
cmp edi, esi
je 0x10084c29
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084c09
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
jmp 0x10084c29
mov esi, dword [esp + 0xa8]
test dl, dl
je 0x10084c55
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, edx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x80], ecx
cmp ebx, 0x20
ja 0x10084c9b
cmp edi, dword [esp + 0xac]
jb 0x10084c6f
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x10084c8b
cmp edi, esi
je 0x10084c9b
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x10084c84
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0x38]
lea edx, [ebx + eax]
mov ebx, ebp
mov ecx, edx
mov dword [esp + 0xa0], edx
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x48]
movzx eax, ax
add ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov dword [esp + 0xb0], ebx
lea ecx, [edx + eax]
lea esi, [edx + eax]
neg ecx
and ecx, 0x1f
mov edx, ebp
shr edx, cl
and edx, dword [eax*4 + 0x10288e28]
mov eax, dword [esp + 0x30]
movzx eax, ax
add edx, eax
mov dword [esp + 0x54], edx
mov dword [esp + 0xc0], edx
cmp esi, 0x20
ja 0x10084d4e
cmp edi, dword [esp + 0xac]
jb 0x10084d17
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x10084d3e
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x10084d4e
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x10084d33
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub esi, eax
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], edi
mov edx, dword [esp + 0x40]
mov eax, ebp
movq xmm0, qword [esp + 0x80]
movq qword [esp + 0x90], xmm0
lea ebx, [esi + edx]
mov esi, dword [esp + 0x20]
mov ecx, ebx
mov dword [esp + 0x48], ebx
neg ecx
mov dword [esp + 0xa0], ebx
and ecx, 0x1f
shr eax, cl
and eax, dword [edx*4 + 0x10288e28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add esi, edx
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
add eax, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x34]
add ecx, edx
mov dword [esp + 0x30], eax
mov edx, esi
mov dword [esp + 0x78], ecx
sub edx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
cmp ecx, dword [esp + 0x60]
ja 0x10085050
mov ecx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x5c]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x10085050
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x30]
sub ecx, dword [esp + 0x20]
add eax, 0x20
cmp ecx, eax
jb 0x10085050
push dword [esp + 0x34]
push dword [esp + 0x24]
call fcn.10080150
mov eax, dword [esp + 0x1c]
add esp, 8
cmp eax, 0x10
jbe 0x10084e79
mov esi, dword [esp + 0x20]
lea edx, [eax - 0x10]
mov eax, dword [esp + 0x34]
add esi, 0x10
add eax, 0x10
push eax
push esi
lea ecx, [esi + edx]
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], ecx
call fcn.10080150
add esp, 8
cmp edx, 0x10
jle 0x10084e71
mov edx, dword [esp + 0x38]
add esi, 0x10
mov ebp, dword [esp + 0x14]
add edx, 0x10
nop dword [eax]
push edx
push esi
call fcn.10080150
add edx, 0x10
add esi, 0x10
push edx
push esi
call fcn.10080150
add esi, 0x10
add esp, 0x10
add edx, 0x10
cmp esi, ebp
jb 0x10084e50
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
mov eax, esi
sub eax, dword [esp + 0x50]
cmp ecx, eax
jbe 0x10084efc
mov eax, esi
sub eax, dword [esp + 0x70]
cmp ecx, eax
ja 0x1008367b
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x28]
add edx, eax
lea eax, [edx + ecx]
cmp eax, dword [esp + 0x4c]
ja 0x10084ecc
push ecx
push edx
push esi
call fcn.10005029
mov esi, dword [esp + 0x3c]
add esp, 0xc
jmp 0x1008508f
mov esi, dword [esp + 0x4c]
sub esi, edx
push esi
push edx
push dword [esp + 0x20]
call fcn.10005029
add dword [esp + 0x24], esi
add esp, 0xc
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
sub eax, esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x10], edx
jmp 0x10084f03
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
cmp ecx, 0x10
jb 0x10084f5e
add eax, esi
push edx
push esi
mov dword [esp + 0x80], eax
call fcn.10080150
add esp, 8
cmp dword [esp + 0x28], 0x10
jle 0x10084f55
mov ebp, dword [esp + 0x78]
lea edx, [esi + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x10
push esi
push edx
call fcn.10080150
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x10084f34
mov esi, dword [esp + 0x30]
jmp 0x1008508f
cmp ecx, 8
jae 0x10084f9e
movzx eax, byte [edx]
mov byte [esi], al
movzx eax, byte [edx + 1]
mov byte [esi + 1], al
movzx eax, byte [edx + 2]
mov byte [esi + 2], al
movzx eax, byte [edx + 3]
add edx, dword [ecx*4 + 0x10288ea8]
mov byte [esi + 3], al
lea eax, [esi + 4]
push edx
push eax
call fcn.10080170
mov eax, dword [esp + 0x2c]
add esp, 8
sub edx, dword [eax*4 + str._b_b_b_a_b_t_n_v]
jmp 0x10084fac
push edx
push esi
call fcn.10080180
mov edx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x28]
cmp eax, 8
jbe 0x1008504a
add eax, 0xfffffff8
lea ecx, [edx + 8]
add esi, 8
mov dword [esp + 0x14], ecx
add eax, esi
mov dword [esp + 0x18], eax
mov eax, esi
sub eax, ecx
cmp eax, 0x10
jge 0x10085001
mov ebp, dword [esp + 0x18]
mov ebx, ecx
sub ebx, esi
nop dword [eax]
lea eax, [ebx + esi]
push eax
push esi
call fcn.10080180
add esi, 8
add esp, 8
cmp esi, ebp
jb 0x10084fe0
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
jmp 0x1008508f
push ecx
push esi
call fcn.10080150
mov eax, dword [esp + 0x30]
add esp, 8
add eax, 0xfffffff8
cmp eax, 0x10
jle 0x1008504a
mov ebx, dword [esp + 0x18]
lea edx, [esi + 0x10]
mov esi, dword [esp + 0x14]
add esi, 0x10
push esi
push edx
call fcn.10080150
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.10080150
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebx
jb 0x10085025
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
jmp 0x1008508f
push dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x40]
push dword [esp + 0x74]
push dword [esp + 0x58]
push dword [esp + 0x6c]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x7c]
movq qword [eax], xmm0
push dword [esp + 0x44]
mov dword [eax + 8], edx
call fcn.10086660
mov esi, eax
add esp, 0x28
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
cmp esi, 0xffffff88
ja 0x10085201
mov edx, dword [esp + 0x20]
add edx, esi
sub dword [esp + 0xf0], 1
mov dword [esp + 0x20], edx
je 0x10085135
cmp ebx, 0x20
ja 0x100848c0
cmp edi, dword [esp + 0xac]
jb 0x100850e8
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa0], ebx
mov ebp, dword [edi]
mov dword [esp + 0x9c], ebp
jmp 0x100848c0
mov edx, dword [esp + 0xa8]
cmp edi, edx
je 0x100848c0
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x10085108
mov ecx, edi
sub ecx, edx
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0xa4], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], ebx
jmp 0x100848c0
jne 0x1008367b
mov edx, dword [esp + 0x20]
cmp ebx, 0x20
ja 0x1008515d
cmp edi, dword [esp + 0xac]
jae 0x1008367b
cmp edi, dword [esp + 0xa8]
jne 0x1008367b
cmp ebx, 0x20
jb 0x1008367b
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov dword [esi + 0x682c], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x6830], eax
mov eax, dword [esp + 0xd0]
mov dword [esi + 0x6834], eax
cmp dword [esi + 0x75fc], 2
jne 0x100851d7
mov eax, edi
sub ebp, ebx
sub eax, edx
cmp ebp, eax
ja 0x100844bd
test edx, edx
je 0x100851c1
push ebp
push ebx
push edx
call fcn.10005029
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, ebp
mov dword [esp + 0x20], edx
lea ebx, [esi + 0x7600]
mov dword [esi + 0x75fc], 0
lea ebp, [esi + 0x17600]
sub ebp, ebx
sub edi, edx
cmp ebp, edi
ja 0x100844bd
test edx, edx
je 0x100851f8
push ebp
push ebx
push edx
call fcn.10004eda
mov edx, dword [esp + 0x2c]
add esp, 0xc
add edx, ebp
mov esi, edx
sub esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0xd4]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10002c9d
add esp, 0xc8
ret