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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edx, dword [esp + 0xd8]
mov ebp, dword [esp + 0xc0]
mov ebx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0xd4]
mov edx, dword [esp + 0xdc]
fnstcw word [esp + 0x4e]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x50], ebp
mov ebp, ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x8c], ecx
shr ebp, 0x10
mov dword [esp + 0x54], ebx
movzx ebx, cx
shr ecx, 0x18
and ebp, 0x7fff
shr cl, 7
mov dword [esp + 0x88], eax
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x2c], cl
lea ebp, [esp + 0x50]
movzx ecx, cl
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x38], ebp
shr eax, 0x1d
shl ebx, 3
sub ecx, 4
or eax, ebx
mov dword [ecx + 4], eax
cmp ecx, ebp
je 0x6e94c430
mov ebx, dword [ecx]
mov eax, dword [ecx - 4]
jmp 0x6e94c415
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
movzx ecx, dx
mov dword [esp + 0x80], edi
mov dword [esp + 0x60], edi
lea edi, [esp + 0x60]
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], edx
shl eax, 3
mov dword [esp + 0x64], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
mov eax, edx
shr eax, 0x10
shr edx, 0x18
mov dword [esp + 0x68], ebx
mov esi, eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], ecx
and esi, 0x7fff
shr dl, 7
mov dword [esp + 0x34], edi
shr ebx, 0x1d
shl ecx, 3
lea edi, [esp + 0x60]
or ebx, ecx
sub eax, 4
mov dword [eax + 4], ebx
cmp eax, edi
je 0x6e94c4b0
mov ecx, dword [eax]
mov ebx, dword [eax - 4]
jmp 0x6e94c491
mov eax, dword [esp + 0x60]
cmp esi, 0x7fff
lea ebx, [eax*8]
mov dword [esp + 0x60], ebx
je 0x6e94c9d0
xor edx, 1
movzx eax, dl
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
sub eax, esi
cmp dword [esp + 0x24], edx
je 0x6e94c8f1
cmp eax, 0
jle 0x6e94cc60
test esi, esi
jne 0x6e94c620
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
mov esi, ecx
or esi, ebp
mov dword [esp + 0x28], edi
or esi, edi
or esi, ebx
jne 0x6e94c9f0
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94d2c0
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x28], 0
mov edi, dword [esp + 0x20]
lea ebp, [esp + 0x70]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], edi
mov ebx, dword [esp + 0x1c]
test ebx, ebx
jne 0x6e94cc48
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x74]
mov ecx, eax
or ecx, edi
or ecx, dword [esp + 0x20]
or ecx, edx
test ecx, ecx
jne 0x6e94c7f1
movzx ebx, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], 0
and eax, 7
and ebx, 1
mov byte [esp + 0x2c], bl
test eax, eax
je 0x6e94c5c2
movzx eax, word [esp + 0x4e]
and ax, 0xc00
or dword [esp + 0x28], 0x20
cmp ax, 0x400
je 0x6e94cf80
cmp ax, 0x800
je 0x6e94cf70
test ax, ax
je 0x6e94cf61
test edx, 0x80000
je 0x6e94c5e8
add dword [esp + 0x1c], 1
and edx, 0xfff7ffff
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x7c], edx
cmp eax, 0x7fff
je 0x6e94cd00
movzx edx, word [esp + 0x1c]
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
and dx, 0x7fff
lea esi, [esp + 0x7c]
mov ecx, ebp
shl ebx, 0x1d
shr eax, 3
add ecx, 4
or eax, ebx
mov dword [ecx - 4], eax
cmp ecx, esi
je 0x6e94caf0
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
jmp 0x6e94c600
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94d300
or dword [esp + 0x6c], 0x80000
cmp eax, 0x74
mov dword [esp + 0x28], 0
jle 0x6e94cee0
mov dword [esp + 0x2c], 1
xor ebp, ebp
xor edi, edi
xor esi, esi
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x2c]
sbb edx, ebp
sbb ecx, edi
sbb ebx, esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x7c]
test edx, 0x80000
je 0x6e94cc30
and edx, 0x7ffff
mov dword [esp + 0x7c], edx
test edx, edx
je 0x6e94cea0
bsr eax, edx
xor eax, 0x1f
lea esi, [eax + 0x13]
sub eax, 0xc
cmovns esi, eax
cdq
shr edx, 0x1b
sar esi, 5
lea ecx, [eax + edx]
and ecx, 0x1f
sub ecx, edx
mov dword [esp + 0x20], ecx
je 0x6e94ce71
cmp esi, 3
mov edx, 2
lea ebp, [esp + 0x70]
je 0x6e94c715
lea ebp, [esp + 0x70]
mov edx, esi
mov dword [esp + 0x2c], eax
neg edx
lea ebx, [ebp + edx*4 + 0xc]
mov edx, 0x20
mov edi, edx
sub edi, dword [esp + 0x20]
mov edx, dword [ebx - 4]
mov ecx, edi
mov eax, dword [ebx]
shr edx, cl
movzx ecx, byte [esp + 0x20]
shl eax, cl
or edx, eax
mov dword [ebx + esi*4], edx
sub ebx, 4
cmp ebx, ebp
jne 0x6e94c6f2
mov eax, dword [esp + 0x2c]
lea edx, [esi - 1]
movzx ecx, byte [esp + 0x20]
mov edi, dword [esp + 0x70]
shl edi, cl
mov dword [esp + esi*4 + 0x70], edi
cmp edx, 0xffffffff
je 0x6e94c739
mov dword [ebp + edx*4], 0
sub edx, 1
cmp edx, 0xffffffff
jne 0x6e94c729
cmp dword [esp + 0x1c], eax
jg 0x6e94ce52
sub eax, dword [esp + 0x1c]
lea edx, [eax + 0x20]
add eax, 1
mov ecx, eax
cmovns edx, eax
sar ecx, 0x1f
xor esi, esi
shr ecx, 0x1b
sar edx, 5
add eax, ecx
and eax, 0x1f
sub eax, ecx
mov dword [esp + 0x1c], eax
xor eax, eax
test edx, edx
jle 0x6e94c77b
or esi, dword [ebp + eax*4]
add eax, 1
cmp eax, edx
jne 0x6e94c76e
mov eax, edx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x6e94d0b0
mov ecx, 3
lea ebx, [ebp + edx*4]
xor eax, eax
sub ecx, edx
mov edi, dword [ebx + eax*4]
mov dword [ebp + eax*4], edi
add eax, 1
cmp ecx, eax
jge 0x6e94c794
mov eax, 4
sub eax, edx
cmp eax, 3
jg 0x6e94c7c0
nop
mov dword [ebp + eax*4], 0
add eax, 1
cmp eax, 4
jne 0x6e94c7b0
xor eax, eax
test esi, esi
mov edi, dword [esp + 0x74]
setne al
or eax, dword [esp + 0x70]
mov edx, dword [esp + 0x7c]
mov esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
mov ecx, eax
or ecx, edi
or ecx, edx
or ecx, esi
test ecx, ecx
je 0x6e94c578
mov esi, dword [esp + 0x20]
mov ecx, edx
mov dword [esp + 0x88], eax
lea ebx, [esp + 0x8c]
shr eax, 0x1f
add ecx, ecx
or eax, ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x80], esi
lea esi, [esp + 0x80]
mov dword [ebx], eax
sub ebx, 4
cmp ebx, esi
je 0x6e94c847
mov ecx, dword [ebx]
mov eax, dword [ebx - 4]
sub ebx, 4
shr eax, 0x1f
add ecx, ecx
or eax, ecx
mov dword [ebx + 4], eax
cmp ebx, esi
jne 0x6e94c831
mov eax, dword [esp + 0x80]
add eax, eax
test al, 6
je 0x6e94c882
movzx ecx, word [esp + 0x4e]
or dword [esp + 0x28], 0x20
and cx, 0xc00
cmp cx, 0x400
je 0x6e94d0a0
cmp cx, 0x800
je 0x6e94d070
test cx, cx
je 0x6e94d010
mov eax, dword [esp + 0x8c]
shr eax, 0x14
xor eax, 1
and eax, 1
test byte [esp + 0x20], 7
movzx ecx, al
je 0x6e94cbb0
movzx eax, word [esp + 0x4e]
or dword [esp + 0x28], 0x20
and ax, 0xc00
cmp ax, 0x400
je 0x6e94ce30
cmp ax, 0x800
je 0x6e94cde0
test ax, ax
movzx eax, byte [esp + 0x24]
je 0x6e94cd90
and eax, 1
mov dword [esp + 0x1c], 0
mov byte [esp + 0x2c], al
test ecx, ecx
je 0x6e94c5c2
or dword [esp + 0x28], 0x10
jmp 0x6e94c5c2
cmp eax, 0
jle 0x6e94cf90
test esi, esi
jne 0x6e94ca34
mov ecx, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov esi, ecx
or esi, ebp
or esi, edx
or esi, ebx
je 0x6e94c518
sub eax, 1
je 0x6e94d3e2
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94d41d
cmp eax, 0x74
mov dword [esp + 0x28], 2
jle 0x6e94ca5b
mov dword [esp + 0x30], 1
xor ebp, ebp
xor edi, edi
xor esi, esi
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x30]
adc edx, ebp
adc ecx, edi
adc ebx, esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x7c]
test edx, 0x80000
je 0x6e94cc30
mov eax, dword [esp + 0x70]
add dword [esp + 0x1c], 1
lea ebp, [esp + 0x70]
and edx, 0xfff7ffff
lea esi, [esp + 0x7c]
mov dword [esp + 0x7c], edx
mov ecx, ebp
mov ebx, eax
shl ebx, 0x1f
mov edx, dword [ecx + 4]
shr eax, 1
add ecx, 4
shl edx, 0x1f
or eax, edx
mov dword [ecx - 4], eax
cmp ecx, esi
je 0x6e94d4f0
mov eax, dword [ecx]
jmp 0x6e94c9ae
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x64]
or eax, dword [esp + 0x6c]
or eax, ebx
jne 0x6e94c4ce
jmp 0x6e94c4cb
sub eax, 1
jne 0x6e94cec0
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov edi, eax
mov edx, esi
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x20]
sub esi, ebx
sbb edx, ebp
sbb eax, ecx
sbb edi, dword [esp + 0x28]
mov dword [esp + 0x28], 2
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], esi
jmp 0x6e94c67f
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94dadb
or dword [esp + 0x6c], 0x80000
cmp eax, 0x74
mov dword [esp + 0x28], 0
jg 0x6e94c944
mov esi, eax
and eax, 0x1f
sar esi, 5
mov edi, eax
test esi, esi
je 0x6e94dad2
mov edx, dword [esp + 0x34]
lea eax, [esp + esi*4 + 0x60]
xor ebp, ebp
or ebp, ebx
add edx, 4
cmp edx, eax
je 0x6e94ca8b
mov ebx, dword [edx]
add edx, 4
or ebp, ebx
cmp edx, eax
jne 0x6e94ca80
mov eax, esi
test edi, edi
jne 0x6e94d64c
mov edx, 3
lea ecx, [esp + esi*4 + 0x60]
xor eax, eax
sub edx, esi
mov ebx, dword [ecx + eax*4]
mov dword [esp + eax*4 + 0x60], ebx
add eax, 1
cmp eax, edx
jle 0x6e94caa2
mov eax, 4
sub eax, esi
jmp 0x6e94cacb
mov dword [esp + eax*4 + 0x60], 0
add eax, 1
cmp eax, 4
jne 0x6e94cac0
xor eax, eax
test ebp, ebp
mov esi, dword [esp + 0x6c]
setne al
or eax, dword [esp + 0x60]
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x30], eax
jmp 0x6e94c952
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
shr eax, 3
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94cb90
mov word [esp + 0x8c], ax
movzx eax, word [esp + 0x8e]
movzx ecx, byte [esp + 0x2c]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebx
and ax, 0x8000
or edx, eax
mov eax, dword [esp + 0x28]
shl ecx, 7
mov word [esp + 0x8e], dx
shr dx, 8
and edx, 0x7f
or ecx, edx
test eax, eax
mov byte [esp + 0x8f], cl
mov ebp, dword [esp + 0x8c]
jne 0x6e94cf50
mov eax, dword [esp + 0xb0]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebp
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, esi
mov ebp, eax
or ecx, edi
or ebp, 0x8000
or ecx, ebx
or ecx, eax
mov eax, 0
cmovne eax, ebp
jmp 0x6e94cb11
test al, al
movzx eax, byte [esp + 0x24]
jne 0x6e94cbe0
and eax, 1
mov byte [esp + 0x2c], al
test edx, 0x80000
je 0x6e94cc00
and edx, 0xfff7ffff
mov dword [esp + 0x1c], 1
mov dword [esp + 0x7c], edx
jmp 0x6e94c5e8
and eax, 1
test byte [esp + 0x28], 0x20
je 0x6e94cc10
mov byte [esp + 0x2c], al
mov dword [esp + 0x1c], 0
jmp 0x6e94c8e7
mov dword [esp + 0x1c], 0
jmp 0x6e94c5e8
test byte [esp + 0x4e], 0x10
mov byte [esp + 0x2c], al
je 0x6e94cbc0
mov dword [esp + 0x1c], 0
jmp 0x6e94c8e7
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x70]
lea ebp, [esp + 0x70]
test ebx, ebx
mov dword [esp + 0x20], eax
je 0x6e94c55e
movzx ebx, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
and eax, 7
and ebx, 1
mov byte [esp + 0x2c], bl
jmp 0x6e94c593
jne 0x6e94d202
mov eax, dword [esp + 0x1c]
add eax, 1
and eax, 0x7fff
cmp eax, 1
jle 0x6e94d5c1
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
sub eax, ebx
sbb ecx, dword [esp + 0x64]
sbb esi, dword [esp + 0x68]
sbb edx, dword [esp + 0x6c]
test edx, 0x80000
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], eax
je 0x6e94d280
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x50]
sbb ecx, dword [esp + 0x54]
sbb ebx, dword [esp + 0x58]
sbb edx, dword [esp + 0x5c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], eax
jmp 0x6e94c699
movzx eax, word [esp + 0x4e]
and ax, 0xc00
je 0x6e94cd20
cmp ax, 0x800
je 0x6e94cd49
mov edx, dword [esp + 0x24]
test edx, edx
je 0x6e94cd51
cmp ax, 0x400
jne 0x6e94cd51
nop
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
xor eax, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov edx, 0x7fff
jmp 0x6e94cd83
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x6e94cd20
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov eax, 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov edx, 0x7ffe
mov dword [esp + 0x1c], 0x7ffe
or dword [esp + 0x28], 0x28
mov ebx, eax
jmp 0x6e94c5fa
and eax, 1
mov dword [esp + 0x1c], 0
mov byte [esp + 0x2c], al
mov edi, dword [esp + 0x20]
mov eax, edi
and eax, 0xf
cmp eax, 4
je 0x6e94c8df
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov eax, edi
add eax, 4
adc ebx, 0
adc esi, 0
adc edx, 0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], eax
jmp 0x6e94c8df
movzx eax, byte [esp + 0x24]
mov dword [esp + 0x1c], 0
and eax, 1
mov byte [esp + 0x2c], al
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x6e94c8df
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
add eax, 8
adc ebx, 0
adc esi, 0
adc edx, 0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x70], eax
jmp 0x6e94c8df
movzx eax, byte [esp + 0x24]
mov dword [esp + 0x1c], 0
and eax, 1
mov byte [esp + 0x2c], al
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x6e94c8df
jmp 0x6e94ce00
mov edx, dword [esp + 0x7c]
sub dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
and edx, 0xfff7ffff
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], eax
jmp 0x6e94c552
lea ebp, [esp + 0x70]
mov edx, esi
neg edx
lea edx, [ebp + edx*4]
mov ecx, dword [edx + 0xc]
lea edi, [esp + 0x60]
mov dword [edx + esi*4 + 0xc], ecx
sub edx, 4
cmp edx, edi
jne 0x6e94ce7d
lea edx, [esi - 1]
jmp 0x6e94c724
mov eax, dword [esp + 0x78]
test eax, eax
je 0x6e94d135
bsr eax, eax
xor eax, 0x1f
add eax, 0x20
jmp 0x6e94c6a7
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94d41d
cmp eax, 0x74
mov dword [esp + 0x28], 2
jg 0x6e94c647
nop
mov esi, eax
and eax, 0x1f
sar esi, 5
mov edi, eax
test esi, esi
je 0x6e94d643
mov edx, dword [esp + 0x34]
lea eax, [esp + esi*4 + 0x60]
xor ebp, ebp
or ebp, ebx
add edx, 4
cmp edx, eax
je 0x6e94cf10
mov ebx, dword [edx]
add edx, 4
or ebp, ebx
cmp edx, eax
jne 0x6e94cf05
mov eax, esi
test edi, edi
jne 0x6e94d150
mov edx, 3
lea ecx, [esp + esi*4 + 0x60]
xor eax, eax
sub edx, esi
mov esi, esi
lea edi, [edi]
mov ebx, dword [ecx + eax*4]
mov dword [esp + eax*4 + 0x60], ebx
add eax, 1
cmp eax, edx
jle 0x6e94cf30
mov eax, 4
sub eax, esi
jmp 0x6e94d1db
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.6e947730
jmp 0x6e94cb6f
xor ecx, ecx
jmp 0x6e94cd9f
xor ecx, ecx
jmp 0x6e94cdf4
xor ecx, ecx
jmp 0x6e94ce44
jne 0x6e94d6cf
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, ecx
and eax, 0x7fff
cmp eax, 1
jle 0x6e94d46c
lea ebp, [esp + 0x70]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
add eax, ebx
adc edx, dword [esp + 0x64]
adc edi, dword [esp + 0x68]
adc esi, dword [esp + 0x6c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edi
lea esi, [esp + 0x7c]
mov edi, eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
shl edi, 0x1f
mov ebx, ebp
mov edx, dword [ebx + 4]
shr eax, 1
add ebx, 4
shl edx, 0x1f
or eax, edx
mov dword [ebx - 4], eax
cmp ebx, esi
je 0x6e94d580
mov eax, dword [ebx]
jmp 0x6e94cfea
mov ecx, eax
and ecx, 0xf
cmp ecx, 4
je 0x6e94c882
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
add eax, 4
adc edx, 0
adc ecx, 0
adc ebx, 0
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
jmp 0x6e94c882
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x6e94c882
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
add eax, 8
adc edx, 0
adc ecx, 0
adc ebx, 0
jmp 0x6e94d03f
mov edi, dword [esp + 0x24]
test edi, edi
je 0x6e94c882
jmp 0x6e94d07c
mov ecx, 0x20
sub ecx, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x70]
shl eax, cl
mov dword [esp + 0x20], ecx
or esi, eax
mov eax, 3
sub eax, edx
mov dword [esp + 0x30], eax
je 0x6e94d4d3
add eax, edx
mov edi, edx
lea ebx, [ebp + edx*4]
lea eax, [ebp + eax*4]
neg edi
mov dword [esp + 0x34], edx
shl edi, 2
mov dword [esp + 0x2c], eax
movzx ecx, byte [esp + 0x20]
mov eax, dword [ebx + 4]
add ebx, 4
mov edx, dword [ebx - 4]
shl eax, cl
movzx ecx, byte [esp + 0x1c]
shr edx, cl
or eax, edx
mov dword [ebx + edi - 4], eax
cmp ebx, dword [esp + 0x2c]
jne 0x6e94d0ef
mov edx, dword [esp + 0x34]
mov eax, 4
sub eax, edx
movzx ecx, byte [esp + 0x1c]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x30]
shr edx, cl
mov dword [esp + edi*4 + 0x70], edx
jmp 0x6e94c7a9
mov eax, dword [esp + 0x74]
test eax, eax
je 0x6e94d351
bsr eax, eax
xor eax, 0x1f
add eax, 0x40
jmp 0x6e94c6a7
mov ebx, 0x20
mov eax, dword [esp + eax*4 + 0x60]
sub ebx, edi
mov ecx, ebx
mov dword [esp + 0x2c], ebx
shl eax, cl
or ebp, eax
mov eax, 3
sub eax, esi
mov dword [esp + 0x34], eax
je 0x6e94d4dd
add eax, esi
lea edx, [esp + esi*4 + 0x60]
mov dword [esp + 0x38], esi
lea eax, [esp + eax*4 + 0x60]
mov dword [esp + 0x30], eax
mov eax, esi
neg eax
lea ebx, [eax*4]
movzx ecx, byte [esp + 0x2c]
mov eax, dword [edx + 4]
add edx, 4
mov esi, dword [edx - 4]
shl eax, cl
mov ecx, edi
shr esi, cl
or eax, esi
mov dword [edx + ebx - 4], eax
cmp edx, dword [esp + 0x30]
jne 0x6e94d193
mov esi, dword [esp + 0x38]
mov eax, 4
sub eax, esi
mov edx, dword [esp + 0x6c]
mov ecx, edi
mov edi, dword [esp + 0x34]
shr edx, cl
mov dword [esp + edi*4 + 0x60], edx
jmp 0x6e94d1db
mov dword [esp + eax*4 + 0x60], 0
add eax, 1
cmp eax, 4
jne 0x6e94d1d0
xor eax, eax
test ebp, ebp
mov esi, dword [esp + 0x6c]
setne al
or eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov edi, eax
jmp 0x6e94c655
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x6e94d361
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
mov edx, edi
mov dword [esp + 0x24], edi
or edx, ecx
or edx, dword [esp + 0x1c]
or edx, dword [esp + 0x20]
jne 0x6e94d7cd
cmp esi, 0x7fff
je 0x6e94dfcf
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x70], ebx
lea ebp, [esp + 0x70]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jmp 0x6e94c552
mov dword [esp + 0x20], eax
or eax, edx
or ecx, eax
or ecx, dword [esp + 0x78]
jne 0x6e94d3d5
movzx eax, word [esp + 0x4e]
mov dword [esp + 0x28], 0
lea ebp, [esp + 0x70]
and ax, 0xc00
cmp ax, 0x400
sete al
movzx eax, al
mov dword [esp + 0x24], eax
jmp 0x6e94c578
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
mov ebx, eax
or ebx, ecx
or ebx, edx
or ebx, dword [esp + 0x20]
je 0x6e94c53a
mov ebx, edx
shr ebx, 0x12
xor ebx, 1
and ebx, 1
mov dword [esp + 0x28], ebx
jmp 0x6e94c53a
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
mov ebx, eax
or ebx, ecx
or ebx, edx
or ebx, dword [esp + 0x20]
je 0x6e94d32f
mov ebx, edx
shr ebx, 0x12
xor ebx, 1
and ebx, 1
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x78], eax
lea ebp, [esp + 0x70]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x7c], edx
mov eax, edi
mov dword [esp + 0x70], edi
and eax, 7
jmp 0x6e94c593
bsr eax, dword [esp + 0x70]
xor eax, 0x1f
add eax, 0x60
jmp 0x6e94c6a7
cmp esi, 0x7fff
je 0x6e94e201
neg eax
or dword [esp + 0x5c], 0x80000
mov dword [esp + 0x28], 0
cmp eax, 0x74
jle 0x6e94d836
mov dword [esp + 0x1c], 1
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
sub ebx, dword [esp + 0x1c]
sbb eax, ebp
sbb edx, dword [esp + 0x20]
sbb ecx, edi
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jmp 0x6e94c67f
mov dword [esp + 0x28], 0
jmp 0x6e94c699
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
add eax, ebx
adc esi, ebp
adc edi, ecx
adc edx, dword [esp + 0x28]
mov dword [esp + 0x28], 2
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], eax
jmp 0x6e94c97c
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], 2
mov eax, ebx
or eax, ecx
or eax, edx
or eax, dword [esp + 0x20]
je 0x6e94d44c
mov eax, edx
shl eax, 0xd
sar eax, 0x1f
add eax, 3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
lea ebp, [esp + 0x70]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], eax
and eax, 7
jmp 0x6e94c593
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x6e94db13
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov ecx, eax
or ecx, edi
or ecx, edx
or ecx, dword [esp + 0x20]
jne 0x6e94e005
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
lea ebp, [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x20], ebx
mov ecx, eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
or ecx, edi
mov dword [esp + 0x7c], edx
or ecx, edx
or ecx, ebx
cmp ecx, 1
sbb esi, esi
not esi
and esi, 2
mov dword [esp + 0x28], esi
jmp 0x6e94c570
mov eax, 1
jmp 0x6e94d11d
mov eax, 1
jmp 0x6e94d1be
mov edx, dword [esp + 0x7c]
xor eax, eax
shr edx, 1
test ebx, ebx
setne al
or eax, dword [esp + 0x70]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], eax
and eax, 7
cmp dword [esp + 0x1c], 0x7fff
jne 0x6e94c593
movzx eax, word [esp + 0x4e]
and ax, 0xc00
je 0x6e94d548
cmp ax, 0x800
je 0x6e94dbb8
cmp ax, 0x400
jne 0x6e94dbc4
cmp byte [esp + 0x2c], 0
je 0x6e94dbc4
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
xor eax, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x20], 0
or dword [esp + 0x28], 0x28
mov edx, dword [esp + 0x20]
jmp 0x6e94c593
mov edx, dword [esp + 0x7c]
xor eax, eax
shr edx, 1
test edi, edi
setne al
or eax, dword [esp + 0x70]
cmp ecx, 0x7fff
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], eax
je 0x6e94d8fa
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], 0
and eax, 7
jmp 0x6e94c593
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x6e94d73a
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov ecx, eax
or ecx, edi
or ecx, edx
or ecx, dword [esp + 0x20]
jne 0x6e94d9cf
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
mov ecx, eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
or ecx, edi
mov dword [esp + 0x7c], edx
or ecx, edx
or ecx, ebx
jne 0x6e94dd8c
movzx eax, word [esp + 0x4e]
mov dword [esp + 0x20], 0
lea ebp, [esp + 0x70]
mov dword [esp + 0x28], 0
and ax, 0xc00
cmp ax, 0x400
sete al
movzx eax, al
mov dword [esp + 0x24], eax
jmp 0x6e94c578
xor eax, eax
xor ebp, ebp
jmp 0x6e94cf12
mov edx, 0x20
mov eax, dword [esp + eax*4 + 0x60]
sub edx, edi
mov ecx, edx
mov dword [esp + 0x30], edx
shl eax, cl
or ebp, eax
mov eax, 3
sub eax, esi
mov dword [esp + 0x34], eax
je 0x6e94dea3
add eax, esi
mov ebx, esi
lea edx, [esp + esi*4 + 0x60]
lea eax, [esp + eax*4 + 0x60]
neg ebx
mov dword [esp + 0x38], esi
shl ebx, 2
mov dword [esp + 0x3c], ebp
mov esi, eax
movzx ecx, byte [esp + 0x30]
mov eax, dword [edx + 4]
add edx, 4
mov ebp, dword [edx - 4]
shl eax, cl
mov ecx, edi
shr ebp, cl
or eax, ebp
mov dword [edx + ebx - 4], eax
cmp edx, esi
jne 0x6e94d68d
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov eax, 4
sub eax, esi
mov edx, dword [esp + 0x6c]
mov ecx, edi
mov edi, dword [esp + 0x34]
shr edx, cl
mov dword [esp + edi*4 + 0x60], edx
jmp 0x6e94cacb
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x6e94d960
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x1c], edx
or edx, edi
or edx, ecx
or edx, dword [esp + 0x20]
jne 0x6e94dd42
cmp esi, 0x7fff
je 0x6e94e370
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
lea ebp, [esp + 0x70]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], esi
jmp 0x6e94c552
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94dd04
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], eax
or eax, ebp
or eax, edi
or eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
cmp esi, 0x7fff
je 0x6e94dc8f
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov eax, esi
or eax, edx
or eax, ecx
or eax, ebx
cmp dword [esp + 0x1c], 0
je 0x6e94da78
test eax, eax
jne 0x6e94dda9
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x7c], ebp
mov edx, ebp
mov dword [esp + 0x78], edi
and eax, 7
mov dword [esp + 0x1c], 0x7fff
lea ebp, [esp + 0x70]
jmp 0x6e94c593
xor eax, 0xffffffff
jne 0x6e94d819
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
mov edx, ebx
mov dword [esp + 0x28], 2
mov edi, eax
mov eax, dword [esp + 0x64]
sub edx, dword [esp + 0x20]
sbb eax, ecx
sbb edi, dword [esp + 0x24]
sbb ebp, dword [esp + 0x1c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jmp 0x6e94c67f
cmp esi, 0x7fff
je 0x6e94e4ab
cmp eax, 0x74
mov dword [esp + 0x28], 2
jg 0x6e94d388
mov edi, eax
and eax, 0x1f
sar edi, 5
mov dword [esp + 0x1c], eax
test edi, edi
mov dword [esp + 0x24], edi
je 0x6e94e104
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
lea eax, [ebp + edi*4]
xor edi, edi
mov dword [esp + 0x2c], ebx
mov ebx, edi
add edx, 4
or ebx, ecx
cmp edx, eax
je 0x6e94d876
mov ecx, dword [edx]
add edx, 4
or ebx, ecx
cmp edx, eax
jne 0x6e94d86b
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
test edi, edi
jne 0x6e94dbfe
mov eax, dword [esp + 0x24]
mov ecx, 3
sub ecx, eax
lea edx, [ebp + eax*4]
xor eax, eax
mov edi, dword [edx + eax*4]
mov dword [ebp + eax*4], edi
add eax, 1
cmp eax, ecx
jle 0x6e94d89f
mov eax, 4
sub eax, dword [esp + 0x24]
jmp 0x6e94d8cb
mov dword [ebp + eax*4], 0
add eax, 1
cmp eax, 4
jne 0x6e94d8c0
mov edx, dword [esp + 0x20]
xor eax, eax
mov ebp, dword [esp + 0x54]
test edx, edx
setne al
or eax, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
mov edi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
jmp 0x6e94d39c
movzx eax, word [esp + 0x4e]
mov edx, eax
and dx, 0xc00
je 0x6e94d929
cmp dx, 0x800
je 0x6e94df81
cmp dx, 0x400
jne 0x6e94df8d
cmp byte [esp + 0x2c], 0
je 0x6e94df8d
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
xor edx, edx
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x1c], 0x7fff
mov dword [esp + 0x28], 0x28
jmp 0x6e94c5c2
cmp esi, 0x7fff
je 0x6e94e442
neg eax
or dword [esp + 0x5c], 0x80000
mov dword [esp + 0x28], 0
cmp eax, 0x74
jle 0x6e94deca
mov edi, 1
xor ebp, ebp
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add ebx, edi
adc eax, ebp
adc edx, dword [esp + 0x20]
adc ecx, dword [esp + 0x1c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ebx
jmp 0x6e94c97c
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ebp
or esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x6c]
or esi, ebp
or esi, ebx
je 0x6e94db93
mov ecx, eax
mov esi, edi
mov eax, dword [esp + 0x20]
sub eax, ebx
sbb esi, dword [esp + 0x28]
sbb ecx, dword [esp + 0x1c]
sbb edx, ebp
test edx, 0x80000
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], eax
je 0x6e94e194
mov edx, ebp
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x30]
sub eax, dword [esp + 0x50]
sbb ebx, dword [esp + 0x54]
sbb ebp, dword [esp + 0x58]
sbb edx, dword [esp + 0x5c]
mov ecx, eax
mov dword [esp + 0x78], ebp
mov dword [esp + 0x70], eax
or ecx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x7c], edx
or ecx, ebp
mov eax, ebp
mov dword [esp + 0x74], ebx
mov edi, ebx
or ecx, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], 2
lea ebp, [esp + 0x70]
jmp 0x6e94c570
test eax, eax
jne 0x6e94dcc9
lea ebp, [esp + 0x70]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x7c], 0x8000
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
xor eax, eax
mov dword [esp + 0x70], 0
mov edx, 0x8000
shr eax, 0x1d
sub ecx, 4
mov ebx, eax
lea eax, [edx*8]
or eax, ebx
mov dword [ecx + 4], eax
cmp ecx, ebp
je 0x6e94ddd0
mov edx, dword [ecx]
mov eax, dword [ecx - 4]
jmp 0x6e94daaf
xor eax, eax
xor ebp, ebp
jmp 0x6e94ca8d
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
mov eax, ebx
or eax, ecx
or eax, edx
or eax, dword [esp + 0x20]
je 0x6e94d44c
mov eax, edx
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
jmp 0x6e94d44c
cmp dword [esp + 0x1c], 0x7fff
je 0x6e94e29c
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], eax
or eax, ebp
or eax, ecx
or eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
cmp esi, 0x7fff
je 0x6e94e269
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x6e94e081
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov eax, ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edx
and eax, 7
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 0x7fff
lea ebp, [esp + 0x70]
jmp 0x6e94c593
mov esi, dword [esp + 0x20]
mov dword [esp + 0x74], edi
lea ebp, [esp + 0x70]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x28], 2
mov dword [esp + 0x70], esi
jmp 0x6e94c570
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x6e94d548
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov eax, 7
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0x7ffe
jmp 0x6e94d572
mov eax, 0x20
sub eax, dword [esp + 0x1c]
mov edi, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + edx*4 + 0x50]
mov ecx, edi
mov edi, dword [esp + 0x24]
shl eax, cl
or dword [esp + 0x20], eax
mov eax, 3
sub eax, edi
mov dword [esp + 0x3c], eax
je 0x6e94e429
add eax, edi
lea edx, [ebp + edi*4]
neg edi
lea eax, [ebp + eax*4]
mov dword [esp + 0x2c], eax
mov eax, edi
shl eax, 2
mov dword [esp + 0x38], eax
movzx ecx, byte [esp + 0x34]
mov eax, dword [edx + 4]
add edx, 4
mov edi, dword [edx - 4]
shl eax, cl
movzx ecx, byte [esp + 0x1c]
shr edi, cl
or eax, edi
mov edi, dword [esp + 0x38]
mov dword [edx + edi - 4], eax
cmp edx, dword [esp + 0x2c]
jne 0x6e94dc47
mov eax, 4
sub eax, dword [esp + 0x24]
movzx ecx, byte [esp + 0x1c]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x3c]
shr edx, cl
mov dword [esp + edi*4 + 0x50], edx
jmp 0x6e94d8cb
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov eax, esi
or eax, ecx
or eax, edx
or eax, ebx
je 0x6e94e0f3
test edx, 0x40000
mov eax, 1
mov ebp, dword [esp + 0x1c]
cmovne eax, dword [esp + 0x28]
test ebp, ebp
mov dword [esp + 0x28], eax
jne 0x6e94dda9
mov edi, dword [esp + 0x30]
mov dword [esp + 0x74], ecx
mov eax, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], esi
and eax, 7
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], ebx
lea ebp, [esp + 0x70]
mov ecx, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], 0x7fff
and ecx, 1
mov byte [esp + 0x2c], cl
jmp 0x6e94c593
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], eax
or eax, edi
or eax, ebp
or eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
je 0x6e94d76c
mov eax, ebp
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
jmp 0x6e94d76c
xor eax, 0xffffffff
jne 0x6e94dead
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov edx, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
add edx, dword [esp + 0x20]
adc eax, edi
adc ebp, dword [esp + 0x1c]
adc ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x28], 2
jmp 0x6e94c97c
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
lea ebp, [esp + 0x70]
mov dword [esp + 0x28], 2
mov dword [esp + 0x24], esi
jmp 0x6e94c570
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov esi, edi
shl esi, 0x1d
shr eax, 3
add edx, 4
or eax, esi
mov dword [edx - 4], eax
lea eax, [esp + 0x5c]
cmp edx, eax
je 0x6e94ddfb
mov eax, dword [edx]
mov esi, dword [edx + 4]
jmp 0x6e94ddb3
shl dword [esp + 0x70], 3
mov edx, dword [esp + 0x7c]
mov byte [esp + 0x2c], 1
mov dword [esp + 0x1c], 0x7fff
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 1
jmp 0x6e94c5c2
mov eax, dword [esp + 0x5c]
mov edx, ebx
mov ebx, dword [esp + 0x34]
shr eax, 3
shl ecx, 0x1d
shr edx, 3
lea edi, [esp + 0x6c]
or edx, ecx
add ebx, 4
mov dword [ebx - 4], edx
cmp ebx, edi
je 0x6e94de25
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
jmp 0x6e94de08
mov ecx, dword [esp + 0x6c]
shr ecx, 3
cmp eax, ecx
ja 0x6e94e0d2
je 0x6e94e0a4
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x78], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x74], eax
mov eax, ecx
lea ebp, [esp + 0x70]
lea ecx, [esp + 0x7c]
shr edx, 0x1d
shl eax, 3
sub ecx, 4
or eax, edx
mov dword [ecx + 4], eax
cmp ecx, ebp
je 0x6e94de81
mov eax, dword [ecx]
mov edx, dword [ecx - 4]
jmp 0x6e94de68
movzx eax, byte [esp + 0x24]
shl dword [esp + 0x70], 3
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0x7fff
and eax, 1
mov byte [esp + 0x2c], al
jmp 0x6e94c5c2
mov eax, 1
jmp 0x6e94d6ba
cmp esi, 0x7fff
je 0x6e94e47c
cmp eax, 0x74
mov dword [esp + 0x28], 2
jg 0x6e94d987
mov edi, eax
and eax, 0x1f
sar edi, 5
mov dword [esp + 0x1c], eax
test edi, edi
je 0x6e94e433
mov ecx, dword [esp + 0x20]
lea eax, [ebp + edi*4]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x38]
xor ebx, ebx
jmp 0x6e94defc
mov ecx, dword [edx]
add edx, 4
or ebx, ecx
cmp edx, eax
jne 0x6e94defa
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x20]
mov edx, edi
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x6e94e113
mov ecx, 3
lea edx, [ebp + edi*4]
xor eax, eax
sub ecx, edi
mov dword [esp + 0x1c], ebx
mov ebx, dword [edx + eax*4]
mov dword [ebp + eax*4], ebx
add eax, 1
cmp ecx, eax
jge 0x6e94df2c
mov eax, 4
mov ebx, dword [esp + 0x1c]
sub eax, edi
jmp 0x6e94df52
mov dword [ebp + eax*4], 0
add eax, 1
cmp eax, 4
jne 0x6e94df47
mov edx, dword [esp + 0x30]
xor eax, eax
mov ebp, dword [esp + 0x54]
test edx, edx
setne al
or eax, dword [esp + 0x50]
mov edi, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], eax
jmp 0x6e94d99e
mov esi, dword [esp + 0x24]
test esi, esi
je 0x6e94d929
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov edx, 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0x7ffe
mov dword [esp + 0x28], 0x28
jmp 0x6e94c59c
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 0
mov eax, edi
or eax, ecx
or eax, edx
or eax, ebx
je 0x6e94d254
mov eax, edx
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
jmp 0x6e94d254
mov esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ebp
or esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x6c]
or esi, ebp
or esi, ebx
je 0x6e94db93
mov ecx, eax
mov esi, edi
mov eax, dword [esp + 0x20]
add eax, ebx
adc esi, dword [esp + 0x28]
adc ecx, dword [esp + 0x1c]
adc edx, ebp
test edx, 0x80000
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], eax
je 0x6e94e406
and edx, 0xfff7ffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x7c], edx
and eax, 7
mov dword [esp + 0x28], 2
lea ebp, [esp + 0x70]
jmp 0x6e94c593
mov eax, edx
or eax, esi
or eax, ebx
or eax, edi
jne 0x6e94e1d4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
jmp 0x6e94d7af
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x58], edi
ja 0x6e94e0d2
jne 0x6e94de3a
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x54], edi
ja 0x6e94e0d2
jne 0x6e94de3a
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x50], edi
jbe 0x6e94de3a
mov edx, dword [esp + 0x50]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x78], edx
jmp 0x6e94de60
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x6e94da80
jmp 0x6e94d79f
xor edx, edx
mov dword [esp + 0x20], 0
jmp 0x6e94d882
mov eax, 0x20
sub eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + edx*4 + 0x50]
shl eax, cl
or dword [esp + 0x30], eax
mov eax, 3
sub eax, edi
mov dword [esp + 0x38], eax
je 0x6e94e177
add eax, edi
lea edx, [ebp + edi*4]
neg edi
lea eax, [ebp + eax*4]
shl edi, 2
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], eax
movzx ecx, byte [esp + 0x20]
mov eax, dword [edx + 4]
add edx, 4
mov ebx, dword [edx - 4]
shl eax, cl
movzx ecx, byte [esp + 0x1c]
shr ebx, cl
or eax, ebx
mov dword [edx + edi - 4], eax
cmp edx, dword [esp + 0x34]
jne 0x6e94e150
mov ebx, dword [esp + 0x3c]
movzx ecx, byte [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
mov eax, edi
shr edx, cl
add eax, 1
mov dword [esp + edi*4 + 0x50], edx
jmp 0x6e94df52
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, ebx
mov edi, esi
or ecx, edx
or ecx, esi
or ecx, eax
jne 0x6e94e3a6
movzx eax, word [esp + 0x4e]
mov dword [esp + 0x28], 2
lea ebp, [esp + 0x70]
and ax, 0xc00
cmp ax, 0x400
sete al
movzx eax, al
mov dword [esp + 0x24], eax
jmp 0x6e94c578
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
shl ecx, 0x1d
lea esi, [esp + 0x5c]
add eax, 4
shr edx, 3
or ecx, edx
mov dword [eax - 4], ecx
cmp eax, esi
je 0x6e94e2da
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], esi
jmp 0x6e94e1d8
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 0
mov eax, ecx
or eax, esi
or eax, edx
or eax, ebx
je 0x6e94e22e
mov eax, edx
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x30]
mov dword [esp + 0x78], ecx
mov eax, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
and eax, 7
mov dword [esp + 0x7c], edx
mov dword [esp + 0x20], ebx
lea ebp, [esp + 0x70]
mov ecx, edi
mov dword [esp + 0x1c], 0x7fff
mov dword [esp + 0x24], edi
and ecx, 1
mov byte [esp + 0x2c], cl
jmp 0x6e94c593
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov eax, esi
or eax, edi
or eax, edx
or eax, ebx
je 0x6e94db5d
test edx, 0x40000
mov eax, 1
cmovne eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
jmp 0x6e94db5d
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], eax
or eax, ecx
or eax, ebp
or eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
je 0x6e94db45
mov eax, ebp
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
jmp 0x6e94db45
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x34]
shr esi, 3
shl edi, 0x1d
shr ebx, 3
add eax, 4
mov edx, edi
lea edi, [esp + 0x6c]
or edx, ebx
mov dword [eax - 4], edx
cmp eax, edi
je 0x6e94e304
mov ebx, dword [eax]
mov edi, dword [eax + 4]
jmp 0x6e94e2e5
mov eax, dword [esp + 0x6c]
shr eax, 3
cmp esi, eax
ja 0x6e94e3e5
je 0x6e94e3b7
mov edx, dword [esp + 0x60]
mov dword [esp + 0x7c], eax
mov esi, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x78], edx
lea ebp, [esp + 0x70]
lea ecx, [esp + 0x7c]
mov eax, edx
shl esi, 3
sub ecx, 4
shr eax, 0x1d
or eax, esi
mov dword [ecx + 4], eax
cmp ecx, ebp
je 0x6e94e35a
mov esi, dword [ecx]
mov edx, dword [ecx - 4]
jmp 0x6e94e33f
shl dword [esp + 0x70], 3
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], 0x7fff
jmp 0x6e94c5c2
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 0
mov eax, edi
or eax, ecx
or eax, edx
or eax, ebx
je 0x6e94d719
mov eax, edx
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
jmp 0x6e94d719
mov dword [esp + 0x28], 2
lea ebp, [esp + 0x70]
jmp 0x6e94c570
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x58], edi
ja 0x6e94e3e5
jne 0x6e94e319
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x54], edi
ja 0x6e94e3e5
jne 0x6e94e319
mov edi, dword [esp + 0x60]
cmp dword [esp + 0x50], edi
jbe 0x6e94e319
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], eax
jmp 0x6e94e337
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, ebx
mov edi, esi
mov dword [esp + 0x28], 2
or ecx, edx
lea ebp, [esp + 0x70]
or ecx, esi
or ecx, eax
jmp 0x6e94c570
mov eax, 1
jmp 0x6e94dc77
xor edx, edx
mov dword [esp + 0x30], 0
jmp 0x6e94df0f
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 0
mov eax, esi
or eax, ecx
or eax, edx
or eax, ebx
je 0x6e94e46f
mov eax, edx
shr eax, 0x12
xor eax, 1
and eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
jmp 0x6e94db71
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 2
mov eax, esi
or eax, ecx
or eax, edx
or eax, ebx
je 0x6e94e46f
mov eax, edx
shl eax, 0xd
sar eax, 0x1f
add eax, 3
mov dword [esp + 0x28], eax
jmp 0x6e94e46f
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], 2
mov eax, ecx
or eax, esi
or eax, edx
or eax, ebx
je 0x6e94e22e
mov eax, edx
shl eax, 0xd
sar eax, 0x1f
add eax, 3
mov dword [esp + 0x28], eax
jmp 0x6e94e22e