Function at 0x696d66e0
Capabilities:
Hash data using sha256
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xb4c
mov edx, dword [esp + 0xb64]
mov eax, dword [esp + 0xb60]
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0xb68]
mov ebx, dword [esp + 0xb6c]
test edx, edx
je 0x696d8442
test ecx, ecx
je 0x696d8468
test ebx, ebx
je 0x696d8486
lea edx, [esp + 0x158]
call fcn.696c92b0
mov edx, ebx
lea ecx, [esp + 0x8c]
lea eax, [esp + 0x90]
call fcn.696c8f20
mov edx, dword [esp + 0x8c]
test edx, edx
jne 0x696d67be
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x20], eax
or eax, dword [esp + 0x10]
or eax, ebp
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
or eax, edi
mov ecx, dword [esp + 0xac]
or eax, esi
or eax, ebx
or eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
or eax, ecx
jne 0x696d67cd
add esp, 0xb4c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0xb4c
xor edx, edx
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4d0], esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c8], ebp
mov dword [esp + 0x4c0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4dc], esi
lea esi, [esp + 0x4c0]
mov dword [esp + 0x4d8], eax
mov eax, esi
mov dword [esp + 0x4c4], ecx
mov dword [esp + 0x4cc], edi
mov dword [esp + 0x4d4], ebx
call fcn.696c3be0
lea edx, [esp + 0x4c0]
mov ebp, eax
mov eax, dword [esp + 0x20]
and eax, 1
xor eax, ebp
mov esi, eax
lea eax, [esp + 0x760]
call fcn.696c3aa0
mov edx, dword [esp + 0x760]
mov ecx, esi
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x764]
or eax, dword [esp + 0x768]
xor edx, 1
or eax, dword [esp + 0x76c]
or eax, dword [esp + 0x770]
or eax, dword [esp + 0x774]
or eax, dword [esp + 0x778]
or eax, dword [esp + 0x77c]
or eax, edx
setne al
movzx eax, al
mov dword [esp + 0x40], eax
sub eax, 1
and eax, 0x100
lea edi, [eax + esi]
xor eax, eax
shr edi, 5
sete al
xor edx, edx
mov ebx, eax
mov eax, dword [esp + 0x4c0]
shl ebx, cl
movzx ecx, byte [esp + 0x7c]
mov esi, ebx
xor ebx, ebx
add eax, esi
adc edx, ebx
add esi, dword [esp + 0x4c0]
xor ebx, ebx
xor eax, eax
cmp edi, 1
mov dword [esp + 0x10], edx
sete al
mov dword [esp + 0x14], ebx
xor edx, edx
xor ebx, ebx
shl eax, cl
mov ecx, dword [esp + 0x4c4]
add eax, ecx
movzx ecx, byte [esp + 0x7c]
adc edx, ebx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x20], eax
xor eax, eax
cmp edi, 2
sete al
mov dword [esp + 0x10], edx
xor edx, edx
shl eax, cl
mov ecx, dword [esp + 0x4c8]
mov dword [esp + 0x14], ebx
xor ebx, ebx
add eax, ecx
movzx ecx, byte [esp + 0x7c]
adc edx, ebx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x2c], eax
xor eax, eax
cmp edi, 3
sete al
mov dword [esp + 0x10], edx
xor edx, edx
shl eax, cl
mov ecx, dword [esp + 0x4cc]
mov dword [esp + 0x14], ebx
xor ebx, ebx
add eax, ecx
adc edx, ebx
add eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x7c]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
xor ebx, ebx
xor eax, eax
cmp edi, 4
mov dword [esp + 0x14], ebx
sete al
mov dword [esp + 0x10], edx
xor ebx, ebx
xor edx, edx
shl eax, cl
mov ecx, dword [esp + 0x4d0]
add eax, ecx
movzx ecx, byte [esp + 0x7c]
adc edx, ebx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x34], eax
xor eax, eax
cmp edi, 5
sete al
mov dword [esp + 0x14], ebx
xor ebx, ebx
shl eax, cl
mov ecx, dword [esp + 0x4d4]
mov dword [esp + 0x10], edx
xor edx, edx
add eax, ecx
movzx ecx, byte [esp + 0x7c]
adc edx, ebx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x38], eax
xor eax, eax
cmp edi, 6
sete al
mov dword [esp + 0x14], ebx
xor ebx, ebx
shl eax, cl
mov ecx, dword [esp + 0x4d8]
mov dword [esp + 0x10], edx
xor edx, edx
add eax, ecx
movzx ecx, byte [esp + 0x7c]
adc edx, ebx
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov edx, eax
xor eax, eax
cmp edi, 7
sete al
mov ebx, dword [esp + 0x14]
shl eax, cl
add eax, dword [esp + 0x4dc]
add ebx, eax
xor eax, eax
test ebp, ebp
setne al
mov ecx, ebx
mov ebx, dword [esp + 0x20]
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
or ebx, esi
neg ebp
mov dword [esp + 0x3c], edx
or eax, ebx
or eax, dword [esp + 0x30]
or eax, dword [esp + 0x34]
mov edi, ebp
or eax, dword [esp + 0x38]
mov dword [esp + 0x18], ebp
or eax, edx
mov dword [esp + 0x1c], 0
or eax, ecx
setne al
xor esi, ebp
and edi, 0xd0364142
xor edx, edx
movzx eax, al
mov ecx, esi
mov ebx, eax
neg ebx
mov dword [esp + 0x10], ebx
xor ebx, ebx
add ecx, edi
adc ebx, edx
add esi, edi
mov edi, ebp
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, ebx
and edi, 0xbfd25e8c
xor ebx, ebx
and edx, esi
mov dword [esp + 0x44], edx
xor edx, edx
add ecx, edi
mov edi, dword [esp + 0x20]
adc ebx, edx
xor edx, edx
xor edi, ebp
add ecx, edi
mov edi, dword [esp + 0x2c]
adc ebx, edx
mov edx, esi
and edx, ecx
xor edi, ebp
mov ecx, ebx
xor ebx, ebx
mov dword [esp + 0x48], edx
xor edx, edx
add ecx, edi
mov edi, ebp
adc ebx, edx
and edi, 0xaf48a03b
xor edx, edx
mov eax, edi
add eax, ecx
adc edx, ebx
mov ebx, esi
xor edi, edi
and ebx, eax
mov eax, ebp
mov esi, edx
xor edx, edx
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x30]
and eax, 0xbaaedce6
xor ebx, ebp
mov ecx, ebx
xor ebx, ebx
add eax, ecx
adc edx, ebx
mov ebx, dword [esp + 0x10]
add esi, eax
mov eax, ebp
adc edi, edx
and eax, 0xfffffffe
xor edx, edx
and ebx, esi
mov esi, edi
xor edi, edi
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x34]
xor ebx, ebp
mov ecx, ebx
xor ebx, ebx
add eax, ecx
adc edx, ebx
add eax, esi
adc edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x38]
mov ebx, edi
and ebx, eax
xor edx, ebp
mov esi, ebx
mov eax, edx
xor ebx, ebx
xor edx, edx
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
add ecx, eax
adc ebx, edx
mov edx, edi
and edx, ecx
mov ecx, ebx
xor ebx, ebx
mov edi, edx
mov edx, dword [esp + 0x3c]
xor edx, ebp
mov eax, edx
xor edx, edx
add eax, dword [esp + 0x18]
adc edx, dword [esp + 0x1c]
add eax, ecx
adc edx, ebx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
and edx, ebx
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
xor ecx, ebp
add eax, ecx
add eax, dword [esp + 0x24]
mov ecx, eax
and ecx, ebx
cmp ebp, 1
mov ebp, dword [esp + 0x40]
sbb eax, eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x48]
and eax, 2
lea edx, [ebp + ebp - 1]
sub eax, 1
imul edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], edx
mov edx, eax
shr eax, 4
and edx, 0xf
mov dword [esp + 0x2c], edx
mov edx, ecx
shl edx, 0x1c
add eax, edx
mov dword [esp + 0x34], eax
mov eax, ecx
mov ecx, dword [esp + 0x4c]
shr eax, 4
mov edx, ecx
shl edx, 0x1c
add eax, edx
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, dword [esp + 0x30]
shr eax, 4
mov edx, ecx
shl edx, 0x1c
add eax, edx
mov edx, edi
mov dword [esp + 0x18], eax
mov eax, ecx
shr edx, 4
shr eax, 4
mov ebx, eax
mov eax, esi
shr esi, 4
shl eax, 0x1c
mov ecx, esi
mov esi, dword [esp + 0x10]
add ebx, eax
mov eax, edi
mov edi, dword [esp + 0x3c]
shl eax, 0x1c
add ecx, eax
mov eax, esi
shl eax, 0x1c
add edx, eax
mov eax, esi
mov esi, edi
shr edi, 4
shr eax, 4
shl esi, 0x1c
mov dword [esp + 0x30], edi
lea edi, [esp + 0x27c]
add eax, esi
mov dword [esp + 0x10], eax
jmp 0x696d6c44
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x20]
mov esi, eax
shl ebp, 0x1c
shr eax, 4
and esi, 0xf
add eax, ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
shl ebp, 0x1c
shr eax, 4
add eax, ebp
mov ebp, ebx
shr ebx, 4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
shl ebp, 0x1c
shr eax, 4
add eax, ebp
mov ebp, dword [esp + 0x30]
shr dword [esp + 0x30], 4
mov dword [esp + 0x18], eax
mov eax, ecx
shr ecx, 4
shl eax, 0x1c
shl ebp, 0x1c
add ebx, eax
mov eax, edx
shr edx, 4
shl eax, 0x1c
add ecx, eax
mov eax, dword [esp + 0x10]
shl eax, 0x1c
add edx, eax
mov eax, dword [esp + 0x10]
shr eax, 4
add eax, ebp
mov dword [esp + 0x10], eax
mov eax, esi
not eax
and eax, 1
mov ebp, eax
neg ebp
cmp dword [esp + 0x2c], 0
cmovle eax, ebp
mov ebp, dword [esp + 0x2c]
add edi, 4
add esi, eax
shl eax, 4
sub ebp, eax
imul ebp, dword [esp + 0x38]
lea eax, [esp + 0x37c]
mov dword [edi - 4], ebp
cmp eax, edi
jne 0x696d6c40
mov eax, dword [esp + 0x1a8]
imul esi, dword [esp + 0x38]
lea ecx, [esp + 0x200]
lea edx, [esp + 0x380]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x37c], esi
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x250], 1
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 0x274], 0
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x270], 0
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x268], 0
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x264], 0
mov dword [esp + 0x24c], eax
lea eax, [esp + 0x760]
mov dword [esp + 0x260], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 0
call fcn.696cd7b0
lea eax, [esp + 0x380]
lea ecx, [esp + 0x760]
mov dword [esp], eax
lea edx, [esp + 0xb0]
lea eax, [esp + 0x4c0]
call fcn.696c8a10
lea eax, [esp + 0x4e8]
lea esi, [esi]
call fcn.696c16e0
lea ebx, [esp + 0x788]
add eax, 0x54
cmp ebx, eax
jne 0x696d6ee0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0xffffffff
test esi, esi
jg 0x696d6f21
mov eax, esi
xor edx, edx
neg eax
cmp esi, eax
setne dl
lea esi, [edx - 1]
neg edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], esi
mov esi, eax
mov eax, dword [esp + 0x1b0]
sar esi, 1
mov ebp, dword [esp + 0x1ac]
xor ebx, ebx
mov dword [esp + 0x6c], esi
lea ecx, [esp + 0x4c0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x68], eax
lea esi, [esi]
nop
xor eax, eax
cmp dword [esp + 0x6c], ebx
mov esi, dword [ecx]
sete al
mov edi, dword [ecx + 4]
lea edx, [eax - 1]
neg eax
and esi, eax
and ebp, edx
and edi, eax
or ebp, esi
mov esi, dword [esp + 0x20]
and esi, edx
or edi, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], edi
mov edi, dword [ecx + 8]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], edi
mov edi, dword [ecx + 0xc]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 0x10]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov edi, dword [ecx + 0x14]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov edi, dword [ecx + 0x18]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], edi
mov edi, dword [ecx + 0x1c]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
mov edi, dword [ecx + 0x20]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [ecx + 0x24]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x40]
and esi, eax
and edi, edx
or esi, edi
mov edi, dword [ecx + 0x28]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x44]
and edi, eax
and esi, edx
add ebx, 1
add ecx, 0x54
or edi, esi
mov dword [esp + 0x44], edi
mov edi, dword [ecx - 0x28]
mov esi, dword [esp + 0x48]
and edi, eax
and esi, edx
or edi, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x48], edi
mov edi, dword [ecx - 0x24]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x4c], edi
mov edi, dword [ecx - 0x20]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x50], edi
mov edi, dword [ecx - 0x1c]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x54], edi
mov edi, dword [ecx - 0x18]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x58], edi
mov edi, dword [ecx - 0x14]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x5c], edi
mov edi, dword [ecx - 0x10]
and esi, edx
and edi, eax
or edi, esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x60], edi
mov edi, dword [ecx - 0xc]
and esi, edx
and edx, dword [esp + 0x68]
and edi, eax
and eax, dword [ecx - 8]
or edi, esi
or eax, edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
cmp ebx, 8
jne 0x696d7010
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov edx, 0xffff0bc
mov dword [esp + 0x1ac], ebp
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1b4], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c8], esi
mov esi, dword [esp + 0x70]
sub edx, eax
mov dword [esp + 0x1b8], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x1c0], edi
mov edi, dword [esp + 0x74]
and edx, esi
mov dword [esp + 0x1cc], ebx
mov ebx, edx
mov ecx, dword [esp + 0x18]
mov edx, 0xffffefc
and eax, edi
or ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1bc], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1d4], ebx
sub edx, eax
and eax, edi
and edx, esi
mov dword [esp + 0x1d0], ecx
mov ecx, 0xffffffc
mov esi, edx
mov edx, ecx
or esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1d8], esi
sub edx, eax
and edx, dword [esp + 0x70]
and eax, edi
mov edi, edx
mov edx, ecx
or edi, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1dc], edi
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
or edx, eax
mov dword [esp + 0x234], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1e0], edx
mov edx, ecx
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
mov dword [esp + 0x278], 0
or edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x200], ebp
mov dword [esp + 0x238], edx
mov dword [esp + 0x1e4], edx
mov edx, ecx
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
or edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x23c], edx
mov dword [esp + 0x1e8], edx
mov edx, ecx
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
or edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x240], edx
mov dword [esp + 0x1ec], edx
mov edx, ecx
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
or edx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x244], edx
mov dword [esp + 0x1f0], edx
mov edx, dword [esp + 0x70]
sub ecx, eax
and eax, dword [esp + 0x74]
and edx, ecx
mov ecx, edx
mov edx, 0xfffffc
or ecx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1f4], ecx
sub edx, eax
and eax, dword [esp + 0x74]
and edx, dword [esp + 0x70]
or eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x204], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x228], ebx
mov dword [esp + 0x208], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x22c], esi
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x230], edi
mov dword [esp + 0x210], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x214], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x250], 1
mov dword [esp + 0x218], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x274], 0
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x270], 0
mov dword [esp + 0x220], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x224], edx
mov dword [esp + 0x268], 0
mov dword [esp + 0x264], 0
mov dword [esp + 0x260], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x24c], eax
lea eax, [esp + 0x378]
mov dword [esp + 0x70], eax
xor eax, eax
lea esi, [esi]
mov ebx, 4
test eax, eax
jne 0x696d7449
lea edx, [esp + 0x200]
xor ecx, ecx
mov eax, edx
call fcn.696c9fb0
sub ebx, 1
je 0x696d745e
mov eax, dword [esp + 0x278]
test eax, eax
je 0x696d7439
sub ebx, 1
jne 0x696d744e
mov eax, dword [esp + 0x70]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [eax]
test eax, eax
jg 0x696d748f
mov edx, eax
neg edx
cmp eax, edx
setne al
movzx eax, al
lea esi, [eax - 1]
neg eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], eax
mov eax, edx
sar eax, 1
mov ebx, dword [esp + 0x1ac]
lea ecx, [esp + 0x4c0]
xor esi, esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1cc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1d4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1f4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x30], eax
lea esi, [esi]
lea esi, [esi]
xor eax, eax
cmp dword [esp + 0x6c], esi
mov edi, dword [ecx]
sete al
mov ebp, dword [ecx + 4]
lea edx, [eax - 1]
neg eax
and edi, eax
and ebx, edx
and ebp, eax
or ebx, edi
mov edi, dword [esp + 0x18]
and edi, edx
or ebp, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], ebp
mov ebp, dword [ecx + 8]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], ebp
mov ebp, dword [ecx + 0xc]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x2c], ebp
mov ebp, dword [ecx + 0x10]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x38], ebp
mov ebp, dword [ecx + 0x14]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x58], ebp
mov ebp, dword [ecx + 0x18]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x5c], ebp
mov ebp, dword [ecx + 0x1c]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x60], ebp
mov ebp, dword [ecx + 0x20]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [ecx + 0x24]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x68]
and edi, eax
and ebp, edx
or edi, ebp
mov ebp, dword [ecx + 0x28]
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x3c]
and ebp, eax
and edi, edx
add esi, 1
add ecx, 0x54
or ebp, edi
mov dword [esp + 0x3c], ebp
mov ebp, dword [ecx - 0x28]
mov edi, dword [esp + 0x40]
and ebp, eax
and edi, edx
or ebp, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov ebp, dword [ecx - 0x24]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x44], ebp
mov ebp, dword [ecx - 0x20]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x48], ebp
mov ebp, dword [ecx - 0x1c]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x4c], ebp
mov ebp, dword [ecx - 0x18]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], ebp
mov ebp, dword [ecx - 0x14]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x50], ebp
mov ebp, dword [ecx - 0x10]
and edi, edx
and ebp, eax
or ebp, edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x54], ebp
mov ebp, dword [ecx - 0xc]
and edi, edx
and edx, dword [esp + 0x30]
and ebp, eax
and eax, dword [ecx - 8]
or ebp, edi
or eax, edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], eax
cmp esi, 8
jne 0x696d7580
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x1ac], ebx
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1fc], 0
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x20]
mov edi, ebx
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1d0], eax
mov eax, 0xffff0bc
sub eax, ebx
mov ebx, dword [esp + 0x74]
and eax, esi
and edi, ebx
or edi, eax
mov eax, 0xffffefc
sub eax, ecx
and ecx, ebx
mov dword [esp + 0x1d4], edi
and eax, esi
mov edi, ecx
mov ecx, dword [esp + 0x44]
or edi, eax
mov eax, 0xffffffc
mov edx, eax
mov dword [esp + 0x1d8], edi
sub edx, ecx
and ecx, ebx
and edx, esi
mov edi, ecx
mov ecx, dword [esp + 0x48]
or edi, edx
mov edx, eax
sub edx, ecx
and ecx, ebx
mov dword [esp + 0x1dc], edi
and edx, esi
mov edi, ecx
mov ecx, dword [esp + 0x4c]
or edi, edx
mov edx, eax
sub edx, ecx
and ecx, ebx
mov dword [esp + 0x1e0], edi
and edx, esi
mov edi, ecx
or edi, edx
mov edx, eax
mov dword [esp + 0x1e4], edi
mov ecx, dword [esp + 0x10]
sub edx, ecx
and ecx, ebx
and edx, esi
mov edi, ecx
mov ecx, dword [esp + 0x50]
or edi, edx
mov edx, eax
sub edx, ecx
and ecx, ebx
mov dword [esp + 0x1e8], edi
and edx, esi
mov edi, ecx
mov ecx, dword [esp + 0x54]
or edi, edx
mov edx, eax
sub edx, ecx
and ecx, ebx
mov dword [esp + 0x1ec], edi
and edx, esi
mov edi, ecx
mov ecx, ebp
or edi, edx
sub eax, ebp
and ecx, ebx
mov edx, 0xfffffc
mov dword [esp + 0x1f0], edi
mov edi, ecx
mov ecx, dword [esp + 0x30]
and eax, esi
or edi, eax
mov eax, esi
lea esi, [esp + 0x27c]
sub edx, ecx
and ecx, ebx
mov dword [esp + 0x1f4], edi
and eax, edx
mov edx, ecx
lea ecx, [esp + 0x1ac]
or edx, eax
mov dword [esp + 0x1f8], edx
lea edx, [esp + 0x200]
mov eax, edx
call fcn.696ca8f0
mov eax, dword [esp + 0x70]
lea edx, [eax - 4]
cmp eax, esi
je 0x696d788a
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x278]
jmp 0x696d7430
lea edx, [esp + 0x250]
lea ecx, [esp + 0xb0]
mov eax, edx
lea edi, [esp + 0x380]
lea esi, [esp + 0x158]
call fcn.696c1f70
mov ecx, 0x15
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x380]
mov eax, dword [esp + 0x3d0]
mov dword [esp + 0x760], edx
mov edx, dword [esp + 0x384]
mov dword [esp + 0x7d8], eax
mov dword [esp + 0x764], edx
mov edx, dword [esp + 0x388]
mov dword [esp + 0x768], edx
mov edx, dword [esp + 0x38c]
mov dword [esp + 0x76c], edx
mov edx, dword [esp + 0x390]
mov dword [esp + 0x770], edx
mov edx, dword [esp + 0x394]
mov dword [esp + 0x774], edx
mov edx, dword [esp + 0x398]
mov dword [esp + 0x778], edx
mov edx, dword [esp + 0x39c]
mov dword [esp + 0x77c], edx
mov edx, dword [esp + 0x3a0]
mov dword [esp + 0x780], edx
mov edx, dword [esp + 0x3a4]
mov dword [esp + 0x784], edx
mov edx, dword [esp + 0x3a8]
mov dword [esp + 0x788], edx
mov edx, dword [esp + 0x3ac]
mov dword [esp + 0x78c], edx
mov edx, dword [esp + 0x3b0]
mov dword [esp + 0x790], edx
mov edx, dword [esp + 0x3b4]
mov dword [esp + 0x794], edx
mov edx, dword [esp + 0x3b8]
mov dword [esp + 0x7b0], 1
mov dword [esp + 0x798], edx
mov edx, dword [esp + 0x3bc]
mov dword [esp + 0x7d4], 0
mov dword [esp + 0x79c], edx
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x7d0], 0
mov dword [esp + 0x7a0], edx
mov edx, dword [esp + 0x3c4]
mov dword [esp + 0x7cc], 0
mov dword [esp + 0x7a4], edx
mov edx, dword [esp + 0x3c8]
mov dword [esp + 0x7c8], 0
mov dword [esp + 0x7a8], edx
mov edx, dword [esp + 0x3cc]
mov dword [esp + 0x7c4], 0
mov dword [esp + 0x7ac], edx
mov dword [esp + 0x7c0], 0
mov dword [esp + 0x7bc], 0
mov dword [esp + 0x7b8], 0
mov dword [esp + 0x7b4], 0
test eax, eax
jne 0x696d7a61
lea edx, [esp + 0x760]
mov eax, edx
call fcn.696c9fb0
mov eax, dword [esp + 0x7d8]
lea edx, [esp + 0x7b0]
mov dword [esp + 0x3d0], eax
mov eax, edx
call fcn.696c31f0
lea edx, [esp + 0x7b0]
lea eax, [esp + 0xd8]
call fcn.696c29e0
lea ecx, [esp + 0xd8]
lea edx, [esp + 0x7b0]
lea eax, [esp + 0x118]
call fcn.696c1f70
lea edx, [esp + 0x760]
lea ecx, [esp + 0xd8]
mov eax, edx
call fcn.696c1f70
lea edx, [esp + 0x788]
lea ecx, [esp + 0x118]
mov eax, edx
call fcn.696c1f70
mov eax, dword [esp + 0x760]
mov dword [esp + 0x7b0], 1
lea edx, [esp + 0x158]
mov dword [esp + 0x7d4], 0
mov dword [esp + 0x380], eax
mov eax, dword [esp + 0x764]
mov dword [esp + 0x7d0], 0
mov dword [esp + 0x384], eax
mov eax, dword [esp + 0x768]
mov dword [esp + 0x7cc], 0
mov dword [esp + 0x388], eax
mov eax, dword [esp + 0x76c]
mov dword [esp + 0x7c8], 0
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x770]
mov dword [esp + 0x7c4], 0
mov dword [esp + 0x390], eax
mov eax, dword [esp + 0x774]
mov dword [esp + 0x7c0], 0
mov dword [esp + 0x394], eax
mov eax, dword [esp + 0x778]
mov dword [esp + 0x7bc], 0
mov dword [esp + 0x398], eax
mov eax, dword [esp + 0x77c]
mov dword [esp + 0x7b8], 0
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x780]
mov dword [esp + 0x7b4], 0
mov dword [esp + 0x3a0], eax
mov eax, dword [esp + 0x784]
mov dword [esp + 0x3a4], eax
mov eax, dword [esp + 0x788]
mov dword [esp + 0x3a8], eax
mov eax, dword [esp + 0x78c]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x790]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x794]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x798]
mov dword [esp + 0x3b8], eax
mov eax, dword [esp + 0x79c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x7a0]
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 0x7a4]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x7a8]
mov dword [esp + 0x3c8], eax
mov eax, dword [esp + 0x7ac]
mov dword [esp + 0x3cc], eax
lea eax, [esp + 0xd8]
call fcn.696cc820
lea edx, [esp + 0x380]
lea eax, [esp + 0x118]
call fcn.696cc820
xor eax, eax
cmp dword [esp + 0x7c], 1
mov ecx, dword [esp + 0xd8]
sete al
mov ebp, dword [esp + 0x118]
mov ebx, dword [esp + 0xdc]
lea edx, [eax - 1]
neg eax
mov esi, dword [esp + 0xe0]
and ecx, edx
and ebp, eax
and ebx, edx
or ebp, ecx
mov ecx, dword [esp + 0x11c]
and esi, edx
mov dword [esp + 0xd8], ebp
and ecx, eax
or ebx, ecx
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x38], ebx
and ecx, eax
mov dword [esp + 0xdc], ebx
or esi, ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x3c], esi
and ecx, edx
mov dword [esp + 0xe0], esi
mov esi, dword [esp + 0xec]
mov ebx, ecx
mov ecx, dword [esp + 0x124]
mov edi, ebx
and esi, edx
and ecx, eax
or edi, ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x10], edi
and ecx, edx
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0xf0]
mov ebx, ecx
mov ecx, dword [esp + 0x128]
and edi, edx
and ecx, eax
or ecx, ebx
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0xe8], ecx
and ebx, eax
or esi, ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0xec], esi
mov esi, edi
mov edi, dword [esp + 0x130]
and edi, eax
mov ebx, edi
mov edi, esi
mov esi, dword [esp + 0xf4]
or edi, ebx
mov ebx, dword [esp + 0x134]
and esi, edx
mov dword [esp + 0x44], edi
and ebx, eax
mov dword [esp + 0xf0], edi
or esi, ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x48], esi
and ebx, edx
mov dword [esp + 0xf4], esi
mov esi, ebx
mov ebx, dword [esp + 0x138]
mov edi, esi
mov esi, dword [esp + 0x100]
and ebx, eax
or edi, ebx
mov ebx, dword [esp + 0x13c]
and esi, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0xf8], edi
mov edi, dword [esp + 0xfc]
and ebx, eax
and edi, edx
or edi, ebx
mov ebx, dword [esp + 0x140]
mov dword [esp + 0x20], edi
and ebx, eax
mov dword [esp + 0xfc], edi
or esi, ebx
mov ebx, dword [esp + 0x104]
mov dword [esp + 0x2c], esi
and ebx, edx
mov dword [esp + 0x100], esi
mov esi, ebx
mov ebx, dword [esp + 0x144]
mov edi, esi
and ebx, eax
or edi, ebx
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x30], edi
mov dword [esp + 0x104], edi
mov edi, dword [esp + 0x148]
and ebx, edx
and edi, eax
or edi, ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x108], edi
and ebx, edx
mov esi, ebx
mov ebx, dword [esp + 0x14c]
and ebx, eax
or esi, ebx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x34], esi
and ebx, edx
mov dword [esp + 0x10c], esi
and edx, dword [esp + 0x114]
mov esi, ebx
mov ebx, dword [esp + 0x150]
and ebx, eax
and eax, dword [esp + 0x154]
or edx, eax
or esi, ebx
mov eax, ebp
mov ebx, dword [esp + 0x38]
and eax, 0x3ffffff
shr ebp, 0x1a
mov dword [esp + 0x114], edx
mov dword [esp + 0x380], eax
mov eax, ebx
shr ebx, 0x14
shl eax, 6
mov dword [esp + 0x110], esi
and eax, 0x3ffffff
or ebp, eax
mov dword [esp + 0x384], ebp
mov ebp, dword [esp + 0x3c]
mov eax, ebp
shl eax, 0xc
and eax, 0x3ffffff
or eax, ebx
mov ebx, ebp
mov dword [esp + 0x388], eax
mov eax, dword [esp + 0x10]
shr ebx, 0xe
mov dword [esp + 0x3d0], 0
mov ebp, dword [esp + 0x48]
shl eax, 0x12
and eax, 0x3ffffff
or eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38c], eax
mov eax, ecx
shl eax, 0x18
and eax, 0x3ffffff
shr ebx, 8
or eax, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x390], eax
mov eax, ecx
shr ecx, 0x1c
shr eax, 2
and eax, 0x3ffffff
mov dword [esp + 0x394], eax
mov eax, ebx
shr ebx, 0x16
shl eax, 4
and eax, 0x3ffffff
or ecx, eax
mov dword [esp + 0x398], ecx
mov ecx, dword [esp + 0x44]
mov eax, ecx
shl eax, 0xa
and eax, 0x3ffffff
or eax, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x39c], eax
mov eax, ebp
shr ebx, 0x10
shl eax, 0x10
and eax, 0x3ffffff
or eax, ebx
mov ebx, ebp
mov ebp, dword [esp + 0x2c]
shr ebx, 0xa
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x3a4], ebx
mov ebx, dword [esp + 0x18]
mov eax, ebx
shr ebx, 0x1a
and eax, 0x3ffffff
mov dword [esp + 0x3a8], eax
mov eax, ecx
shl eax, 6
and eax, 0x3ffffff
or eax, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3ac], eax
mov eax, ebp
shr ebx, 0x14
shl eax, 0xc
and eax, 0x3ffffff
or eax, ebx
mov ebx, ebp
mov dword [esp + 0x3b0], eax
mov eax, ecx
shr ebx, 0xe
shl eax, 0x12
and eax, 0x3ffffff
or eax, ebx
mov ebx, ecx
mov dword [esp + 0x3b4], eax
mov eax, edi
shl eax, 0x18
and eax, 0x3ffffff
shr ebx, 8
or eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3b8], eax
mov eax, edi
shr edi, 0x1c
shr eax, 2
and eax, 0x3ffffff
mov dword [esp + 0x3bc], eax
mov eax, ebx
shr ebx, 0x16
shl eax, 4
and eax, 0x3ffffff
or edi, eax
mov eax, esi
shr esi, 0x10
shl eax, 0xa
mov dword [esp + 0x3c0], edi
and eax, 0x3ffffff
or eax, ebx
mov dword [esp + 0x3c4], eax
mov eax, edx
shl eax, 0x10
and eax, 0x3ffffff
or eax, esi
mov dword [esp + 0x3c8], eax
mov eax, edx
shr eax, 0xa
mov dword [esp + 0x3cc], eax
lea eax, [esp + 0x3a8]
call fcn.696c16e0
mov eax, 0xffff0bc
sub eax, dword [esp + 0x3a8]
lea ecx, [esp + 0x380]
mov dword [esp + 0x3a8], eax
mov eax, 0xffffefc
sub eax, dword [esp + 0x3ac]
mov dword [esp + 0x3ac], eax
mov eax, 0xffffffc
mov edx, eax
sub edx, dword [esp + 0x3b0]
mov dword [esp + 0x3b0], edx
mov edx, eax
sub edx, dword [esp + 0x3b4]
mov dword [esp + 0x3b4], edx
mov edx, eax
sub edx, dword [esp + 0x3b8]
mov dword [esp + 0x3b8], edx
mov edx, eax
sub edx, dword [esp + 0x3bc]
mov dword [esp + 0x3bc], edx
mov edx, eax
sub edx, dword [esp + 0x3c0]
mov dword [esp + 0x3c0], edx
mov edx, eax
sub eax, dword [esp + 0x3c8]
sub edx, dword [esp + 0x3c4]
mov dword [esp + 0x3c8], eax
mov eax, 0xfffffc
mov dword [esp + 0x3c4], edx
sub eax, dword [esp + 0x3cc]
lea edx, [esp + 0x200]
mov dword [esp + 0x3cc], eax
mov eax, edx
call fcn.696ca8f0
mov eax, dword [esp + 0x278]
lea edx, [esp + 0x250]
mov dword [esp + 0x1a8], eax
mov eax, edx
call fcn.696c31f0
lea edx, [esp + 0x250]
lea eax, [esp + 0x4c0]
call fcn.696c29e0
lea ecx, [esp + 0x4c0]
lea edx, [esp + 0x250]
lea eax, [esp + 0x760]
call fcn.696c1f70
lea edx, [esp + 0x200]
lea ecx, [esp + 0x4c0]
mov eax, edx
call fcn.696c1f70
lea edx, [esp + 0x228]
lea ecx, [esp + 0x760]
mov eax, edx
call fcn.696c1f70
mov eax, dword [esp + 0x200]
mov dword [esp + 0x250], 1
mov dword [esp + 0x274], 0
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x270], 0
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x208]
mov dword [esp + 0x26c], 0
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x268], 0
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x210]
mov dword [esp + 0x264], 0
mov dword [esp + 0x168], eax
mov eax, dword [esp + 0x214]
mov dword [esp + 0x260], 0
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x218]
mov dword [esp + 0x25c], 0
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x21c]
mov dword [esp + 0x258], 0
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 0x254], 0
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x228]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x230]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x238]
mov dword [esp + 0x190], eax
mov eax, dword [esp + 0x23c]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x244]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x158]
call fcn.696c14e0
lea eax, [esp + 0x180]
call fcn.696c14e0
lea edx, [esp + 0x158]
lea eax, [esp + 0x4c0]
call fcn.696c1e10
mov eax, dword [esp + 0x180]
mov edx, dword [esp + 0xb64]
mov dword [esp + 0x760], 0x6a09e667
mov dword [esp + 0x764], 0xbb67ae85
mov dword [esp + 0x768], 0x3c6ef372
and eax, 1
mov dword [esp + 0x76c], 0xa54ff53a
or eax, 2
mov byte [esp + 0x780], al
mov eax, dword [esp + 0x4c0]
mov dword [esp + 0x770], 0x510e527f
mov dword [esp + 0x781], eax
mov eax, dword [esp + 0x4c4]
mov dword [esp + 0x774], 0x9b05688c
mov dword [esp + 0x785], eax
mov eax, dword [esp + 0x4c8]
mov dword [esp + 0x778], 0x1f83d9ab
mov dword [esp + 0x789], eax
mov eax, dword [esp + 0x4cc]
mov dword [esp + 0x77c], 0x5be0cd19
mov dword [esp + 0x78d], eax
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x7c0], 0x21
mov dword [esp + 0x791], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp + 0x795], eax
mov eax, dword [esp + 0x4d8]
mov dword [esp + 0x799], eax
mov eax, dword [esp + 0x4dc]
mov dword [esp + 0x79d], eax
lea eax, [esp + 0x760]
call fcn.696ca550
add esp, 0xb4c
mov edx, 1
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov edx, dword [eax + 0xa8]
mov dword [esp], str.result___NULL
mov dword [esp + 4], edx
call dword [eax + 0xa4]
add esp, 0xb4c
xor edx, edx
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov edx, dword [eax + 0xa8]
mov dword [esp], str.point___NULL
mov dword [esp + 4], edx
call dword [eax + 0xa4]
xor edx, edx
jmp 0x696d67b1
mov edx, dword [eax + 0xa8]
mov dword [esp], str.scalar___NULL
mov dword [esp + 4], edx
call dword [eax + 0xa4]
xor edx, edx
jmp 0x696d67b1