Function at 0xea7b40
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [esp + 0xc0]
test eax, eax
je case.default.0xea7cf0
mov ebx, dword [esp + 0xc0]
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
je case.default.0xea7cf0
mov esi, dword [ebx + 0xc]
test esi, esi
mov dword [esp + 0x50], esi
je case.default.0xea7cf0
mov esi, dword [ebx]
test esi, esi
je 0xea8de5
mov ebx, dword [ebx + 4]
mov dword [esp + 0x58], ebx
mov eax, dword [ebp]
cmp eax, 0xb
je 0xea7e30
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov edx, dword [ebp + 0x38]
mov edi, dword [esp + 0x58]
mov ebx, dword [ebx + 0x10]
sub ecx, 5
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x4c]
mov ebx, dword [ebp + 0x3c]
mov dword [esp + 0x54], 0
mov dword [esp + 0x5c], ecx
lea ecx, [ebp + 0x530]
mov dword [esp + 0x68], ecx
lea ecx, [ebp + 0x2f0]
mov ebp, edx
mov dword [esp + 0x6c], ecx
cmp eax, 0x1e
jbe switch.0x00ea7cf0
mov dword [esp + 0x54], 0xfffffffe
mov eax, dword [esp + 0x54]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x3c]
xor eax, eax
mov ecx, dword [edx + 8]
test ecx, ecx
je 0xea9083
cmp ebx, 0x1f
ja 0xea7c44
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea7c2d
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0xea7c25
mov ebx, ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
sub eax, dword [esp + 0x4c]
add dword [ecx + 0x14], eax
add dword [edx + 0x1c], eax
test eax, eax
je 0xea7c96
mov ecx, dword [edx + 0x10]
mov dword [esp + 8], eax
test ecx, ecx
je 0xea9900
mov ecx, dword [esp + 0x50]
sub ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [edx + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov edx, dword [edx + 0x10]
mov eax, ebp
test edx, edx
jne 0xea7cc2
mov edx, ebp
mov ecx, ebp
shl edx, 0x18
and eax, 0xff00
shr ecx, 0x18
add ecx, edx
mov edx, ebp
shr edx, 8
and edx, 0xff00
shl eax, 8
add edx, ecx
add eax, edx
mov ecx, dword [esp + 0x3c]
cmp eax, dword [ecx + 0x18]
je 0xea9070
mov eax, dword [esp + 0xc0]
mov dword [eax + 0x18], 0x1462d43
mov eax, 0x1d
mov dword [ecx], 0x1d
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], ecx
jmp dword [eax*4 + 0x1462d70]
cmp ebx, 0x1f
ja 0xea7d25
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea7d10
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0xea7d08
mov edx, ebp
mov eax, ebp
mov ebx, dword [esp + 0x3c]
shr eax, 0x18
shl edx, 0x18
add edx, eax
mov eax, ebp
shr eax, 8
and ebp, 0xff00
and eax, 0xff00
shl ebp, 8
add eax, edx
add eax, ebp
xor ebp, ebp
mov dword [ebx + 0x18], eax
mov ebx, dword [esp + 0xc0]
mov dword [ebx + 0x30], eax
mov ebx, dword [esp + 0x3c]
mov dword [ebx], 0xa
xor ebx, ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0xea9940
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00eadfb0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov dword [edx], 0xb
cmp dword [esp + 0x64], 1
jbe 0xea8d80
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 4]
test edx, edx
jne 0xea7e40
cmp ebx, 2
ja 0xea7de2
test edi, edi
je 0xea98a9
movzx eax, byte [esi]
mov ecx, ebx
sub edi, 1
add esi, 1
add ebx, 8
shl eax, cl
add ebp, eax
mov edx, dword [esp + 0x3c]
mov eax, ebp
and eax, 1
mov dword [edx + 4], eax
mov edx, ebp
shr edx, 1
mov eax, edx
and eax, 3
cmp eax, 2
je 0xea911a
cmp eax, 3
je 0xea9576
cmp eax, 1
je 0xea9538
mov ecx, dword [esp + 0x3c]
mov eax, 0xd
mov dword [ecx], 0xd
mov ebp, edx
sub ebx, 3
shr ebp, 2
jmp 0xea7be3
mov dword [ebp], 0xc
mov al, 0xc
jmp 0xea7b93
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
mov dword [eax], 0x1a
shr ebp, cl
mov eax, 0x1a
jmp switch.0x00ea7cf0
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x48]
test edx, edx
je 0xea7ec3
cmp ebx, edx
jae 0xea7e9e
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea7e88
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea7e80
mov ebx, ecx
mov ecx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3c]
sub ebx, edx
sub eax, 1
and eax, ebp
add dword [ecx + 0x44], eax
mov ecx, edx
mov eax, dword [esp + 0x3c]
shr ebp, cl
add dword [eax + 0x1bc4], edx
mov edx, dword [esp + 0x3c]
mov dword [edx], 0x18
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0xea8d80
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x44]
cmp edx, eax
jae 0xea8e64
sub eax, edx
cmp eax, dword [ecx + 0x2c]
ja 0xea90a0
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x30]
cmp eax, edx
jbe 0xea9260
sub eax, edx
mov edx, dword [ecx + 0x28]
sub edx, eax
add edx, dword [ecx + 0x34]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x40]
cmp eax, ecx
mov dword [esp + 0x40], ecx
cmova eax, ecx
jmp 0xea8e73
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xc4], 6
mov dword [eax], 0x13
je 0xea8d80
mov edx, dword [esp + 0x3c]
mov dword [edx], 0x14
cmp edi, 5
ja 0xea9177
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x1bc4], 0
mov ecx, dword [ecx + 0x54]
mov dword [esp + 0x44], eax
mov eax, 1
mov edx, dword [esp + 0x44]
shl eax, cl
sub eax, 1
mov dword [esp + 0x48], eax
and eax, ebp
lea eax, [edx + eax*4]
movzx edx, byte [eax]
mov byte [esp + 0x40], dl
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x70], ax
movzx eax, dl
cmp ebx, eax
mov dword [esp + 0x60], eax
jae 0xea7ff6
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea7fb8
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
mov edx, dword [esp + 0x44]
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x48]
and eax, ebp
lea eax, [edx + eax*4]
movzx ebx, byte [eax]
movzx edx, byte [eax + 1]
mov byte [esp + 0x40], bl
movzx ebx, word [eax + 2]
movzx eax, dl
cmp eax, ecx
ja 0xea7fb0
mov word [esp + 0x70], bx
mov ebx, ecx
mov dword [esp + 0x60], eax
cmp byte [esp + 0x40], 0
jne 0xea9280
movzx eax, dl
mov ecx, edx
mov edx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x60]
shr ebp, cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x70]
mov dword [edx + 0x40], eax
mov ecx, dword [esp + 0x3c]
mov eax, 0x19
mov dword [ecx], 0x19
jmp switch.0x00ea7cf0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x48]
test edx, edx
jne 0xea9007
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x40]
mov dword [edx + 0x1bc8], eax
mov dword [edx], 0x16
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x50]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x58]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x40]
sub eax, 1
mov dword [esp + 0x48], eax
and eax, ebp
lea edx, [ecx + eax*4]
movzx eax, byte [edx]
mov byte [esp + 0x44], al
movzx eax, byte [edx + 1]
movzx edx, word [edx + 2]
mov word [esp + 0x60], dx
movzx edx, al
cmp ebx, edx
jae 0xea97b9
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea80b0
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
mov ebx, dword [esp + 0x40]
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x48]
and eax, ebp
lea edx, [ebx + eax*4]
movzx eax, byte [edx]
movzx ebx, word [edx + 2]
mov byte [esp + 0x44], al
movzx eax, byte [edx + 1]
movzx edx, al
cmp edx, ecx
ja 0xea80a8
mov word [esp + 0x60], bx
mov ebx, ecx
mov dword [esp + 0x48], edx
movzx ecx, byte [esp + 0x44]
mov dword [esp + 0x74], ecx
and ecx, 0xf0
jne 0xea90d0
movzx ecx, word [esp + 0x60]
mov dword [esp + 0x44], 1
mov dword [esp + 0x70], ecx
movzx ecx, al
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x48]
shl dword [esp + 0x44], cl
mov ecx, dword [esp + 0x44]
sub ecx, 1
mov dword [esp + 0x74], ecx
and ecx, ebp
mov dword [esp + 0x44], ecx
mov ecx, eax
shr dword [esp + 0x44], cl
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
add eax, dword [esp + 0x70]
lea eax, [ecx + eax*4]
movzx ecx, byte [eax]
mov byte [esp + 0x44], cl
movzx ecx, byte [eax + 1]
movzx eax, word [eax + 2]
mov byte [esp + 0x78], cl
mov word [esp + 0x60], ax
movzx eax, cl
mov ecx, dword [esp + 0x48]
add ecx, eax
cmp ebx, ecx
jae 0xea81db
test edi, edi
je 0xea8d80
mov dword [esp + 0x7c], edx
jmp 0xea8188
test edi, edi
je 0xea8d80
movzx eax, byte [esi]
mov ecx, ebx
add ebx, 8
mov edx, dword [esp + 0x40]
sub edi, 1
add esi, 1
shl eax, cl
movzx ecx, byte [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x74]
and eax, ebp
shr eax, cl
mov ecx, dword [esp + 0x48]
add eax, dword [esp + 0x70]
lea eax, [edx + eax*4]
movzx edx, byte [eax]
mov byte [esp + 0x44], dl
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov word [esp + 0x60], ax
movzx eax, dl
add ecx, eax
cmp ecx, ebx
ja 0xea8180
mov byte [esp + 0x78], dl
mov edx, dword [esp + 0x7c]
movzx ecx, byte [esp + 0x48]
sub ebx, edx
mov edx, dword [esp + 0x48]
shr ebp, cl
mov ecx, dword [esp + 0x3c]
add edx, dword [ecx + 0x1bc4]
movzx ecx, byte [esp + 0x78]
mov dword [esp + 0x48], ecx
movzx ecx, byte [esp + 0x44]
mov dword [esp + 0x74], ecx
jmp 0xea90dd
mov dword [ebp], 0x1e
mov dword [esp + 0x54], 0xfffffffc
jmp 0xea7bf4
cmp ebx, 0x1f
ja 0xea824f
test edi, edi
je 0xea8d80
mov ecx, ebx
nop
jmp 0xea823a
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0xea8232
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0xea8261
mov ebx, dword [esp + 0x3c]
mov dword [eax + 4], ebp
test byte [ebx + 0x11], 2
jne 0xea95ee
mov dword [ebx], 3
xor ebp, ebp
xor ebx, ebx
jmp 0xea827c
cmp ebx, 0xf
ja 0xea82a5
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8290
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0xea8288
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0xea82c7
mov edx, ebp
mov ebx, dword [esp + 0x3c]
and edx, 0xff
mov dword [eax + 8], edx
mov edx, ebp
shr edx, 8
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 0x10]
test dh, 2
jne 0xea94f6
mov dword [ebx], 4
xor ebp, ebp
xor ebx, ebx
test dh, 4
mov dword [esp + 0x40], edx
je 0xea9130
cmp ebx, 0xf
ja 0xea831d
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8308
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0xea8300
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x40], ebp
test eax, eax
je 0xea832e
mov dword [eax + 0x14], ebp
test dh, 2
jne 0xea96bd
mov ecx, edx
xor ebx, ebx
mov dword [esp + 0x40], edx
and ecx, 0x400
xor ebp, ebp
mov eax, dword [esp + 0x3c]
mov dword [eax], 5
jmp 0xea8757
mov ecx, ebx
and ebx, 0xfffffff8
and ecx, 7
shr ebp, cl
cmp ebx, 0x1f
ja 0xea8390
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8379
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0xea8371
mov ebx, ecx
mov eax, ebp
mov edx, ebp
shr eax, 0x10
and edx, 0xffff
xor eax, 0xffff
cmp edx, eax
je 0xea9673
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x18], 0x1462c26
mov eax, 0x1d
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov edx, dword [edx + 0x68]
mov dword [esp + 0x60], edx
mov ecx, dword [ecx + 0x60]
mov dword [esp + 0x78], ecx
add ecx, dword [eax + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x74], ecx
cmp dword [esp + 0x74], eax
mov edx, dword [esp + 0x3c]
jbe 0xea9971
mov eax, dword [esp + 0x3c]
mov edx, dword [edx + 0x4c]
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x44], edx
mov edx, 1
shl edx, cl
mov ecx, edx
mov edx, dword [esp + 0x44]
sub ecx, 1
mov eax, ecx
and eax, ebp
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov dword [esp + 0x40], ecx
mov word [esp + 0x70], ax
movzx eax, dl
cmp ebx, eax
mov dword [esp + 0x48], eax
jae 0xea848f
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8458
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
mov edx, dword [esp + 0x44]
shl eax, cl
add ecx, 8
add ebp, eax
mov eax, dword [esp + 0x40]
and eax, ebp
lea eax, [edx + eax*4]
movzx edx, byte [eax + 1]
movzx ebx, word [eax + 2]
movzx eax, dl
cmp eax, ecx
ja 0xea8450
mov word [esp + 0x70], bx
mov ebx, ecx
mov dword [esp + 0x48], eax
cmp word [esp + 0x70], 0xf
ja 0xea92d7
cmp ebx, dword [esp + 0x48]
jae 0xea84d3
test edi, edi
je 0xea8d80
mov ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0x48]
jmp 0xea84bb
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea84b3
mov edx, ebx
mov ebx, ecx
mov ecx, edx
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x3c]
shr ebp, cl
movzx ecx, word [esp + 0x70]
sub ebx, dword [esp + 0x48]
mov word [edx + eax*2 + 0x70], cx
add eax, 1
mov dword [esp + 0x60], eax
mov dword [edx + 0x68], eax
jmp 0xea83f5
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
test dh, 2
je 0xea88ed
cmp ebx, 0xf
ja 0xea8541
test edi, edi
je 0xea8d80
mov ecx, ebx
nop
jmp 0xea852a
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0xea8522
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x18]
cmp eax, ebp
je 0xea9270
mov eax, dword [esp + 0xc0]
mov dword [eax + 0x18], str.header_crc_mismatch
mov eax, 0x1d
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0xea8d80
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
sub dword [esp + 0x4c], 1
mov eax, dword [edx + 0x40]
mov byte [ecx], al
add ecx, 1
mov eax, 0x14
mov dword [esp + 0x50], ecx
mov dword [edx], 0x14
jmp switch.0x00ea7cf0
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 8]
test eax, eax
je 0xea98e6
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0xea98e6
cmp ebx, 0x1f
ja 0xea85f3
test edi, edi
je 0xea97b0
mov ecx, ebx
jmp 0xea85dc
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0x1f
jbe 0xea85d4
mov ebx, ecx
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x1c], ebp
je 0xea99e5
mov edx, dword [esp + 0xc0]
mov dword [edx + 0x18], str.incorrect_length_check
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00ea7cf0
mov edx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x54], 1
nop
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x50]
mov dword [ecx], esi
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 4], edi
mov dword [ecx + 0x10], eax
mov dword [ebp + 0x3c], ebx
mov ebx, dword [ebp + 0x28]
mov dword [ebp + 0x38], edx
test ebx, ebx
jne 0xea8663
cmp dword [ebp], 0x19
ja 0xea867b
cmp dword [esp + 0x5c], eax
je 0xea867b
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0xc0]
call fcn.00ea7520
test eax, eax
jne 0xea8209
mov esi, dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
mov ebx, dword [esp + 0x58]
sub ebx, dword [esi + 4]
mov esi, dword [esp + 0x5c]
sub esi, dword [eax + 0x10]
add dword [eax + 8], ebx
add dword [eax + 0x14], esi
add dword [ebp + 0x1c], esi
test esi, esi
je 0xea86db
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0xea86db
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], esi
test edx, edx
je 0xea8db0
mov eax, dword [eax + 0xc]
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov edx, dword [esp + 0xc0]
mov dword [ebp + 0x18], eax
mov dword [edx + 0x30], eax
cmp dword [ebp + 4], 1
mov edx, dword [ebp]
sbb eax, eax
not eax
and eax, 0x40
add eax, dword [ebp + 0x3c]
cmp edx, 0xb
je 0xea8da0
cmp edx, 0xe
jne 0xea8dd0
mov edx, 0x100
mov ecx, dword [esp + 0xc0]
add eax, edx
or esi, ebx
mov dword [ecx + 0x2c], eax
je 0xea8721
cmp dword [esp + 0xc4], 4
jne 0xea7bf4
mov eax, dword [esp + 0x54]
test eax, eax
mov eax, 0xfffffffb
cmovne eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov ecx, edx
mov dword [esp + 0x40], edx
and ecx, 0x400
test ecx, ecx
je 0xea8780
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x40]
cmp edi, eax
mov edx, eax
cmovbe edx, edi
test edx, edx
jne 0xea8f70
test eax, eax
jne 0xea8d80
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x40], 0
mov dword [ecx], 6
test dh, 8
je 0xea8e30
test edi, edi
je 0xea8d80
xor edx, edx
mov dword [esp + 0x60], esi
mov eax, edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x60]
mov edx, dword [esi + 0x20]
movzx ecx, byte [ebx + eax]
add eax, 1
test edx, edx
movzx ebp, cl
je 0xea87e7
mov edi, dword [edx + 0x1c]
test edi, edi
je 0xea87e7
mov ebx, dword [esi + 0x40]
cmp ebx, dword [edx + 0x20]
jae 0xea87e7
mov byte [edi + ebx], cl
add ebx, 1
mov dword [esi + 0x40], ebx
test ebp, ebp
je 0xea87f1
cmp eax, dword [esp + 0x40]
jb 0xea87b6
mov edx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x40], ebp
mov ebx, dword [esp + 0x48]
test byte [eax + 0x11], 2
mov ebp, dword [esp + 0x44]
jne 0xea9210
mov eax, dword [esp + 0x40]
sub edi, edx
add esi, edx
test eax, eax
jne 0xea8d80
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x40], 0
mov dword [eax], 7
test dh, 0x10
je 0xea8e10
test edi, edi
je 0xea8d80
xor edx, edx
mov dword [esp + 0x60], esi
mov eax, edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x3c]
movzx ecx, byte [edx + eax]
add eax, 1
mov edx, dword [ebx + 0x20]
movzx ebp, cl
test edx, edx
je 0xea8895
mov edi, dword [edx + 0x24]
test edi, edi
je 0xea8895
mov esi, ebx
mov ebx, dword [ebx + 0x40]
cmp ebx, dword [edx + 0x28]
jae 0xea8895
mov byte [edi + ebx], cl
add ebx, 1
mov dword [esi + 0x40], ebx
test ebp, ebp
je 0xea889f
cmp eax, dword [esp + 0x40]
jb 0xea8862
mov edx, eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x40], ebp
mov ebx, dword [esp + 0x48]
test byte [eax + 0x11], 2
mov ebp, dword [esp + 0x44]
jne 0xea9150
mov eax, dword [esp + 0x40]
sub edi, edx
add esi, edx
test eax, eax
jne 0xea8d80
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x3c]
test dh, 2
mov dword [eax], 8
jne 0xea8510
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0xea8908
sar edx, 9
and edx, 1
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00eadc40
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc0]
mov dword [edx + 0x18], eax
mov dword [ecx + 0x30], eax
mov eax, 0xb
mov dword [edx], 0xb
jmp switch.0x00ea7cf0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x40]
mov dword [eax], 0xf
test edx, edx
je 0xea8e50
cmp edi, edx
cmovbe edx, edi
cmp edx, dword [esp + 0x4c]
cmova edx, dword [esp + 0x4c]
test edx, edx
je 0xea8d80
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp + 0x38], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
sub dword [esp + 0x4c], edx
add dword [esp + 0x50], edx
sub edi, edx
add esi, edx
sub dword [eax + 0x40], edx
mov eax, dword [eax]
jmp 0xea7be3
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x40]
jmp 0xea8952
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
jmp 0xea8791
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
jmp 0xea883d
mov edx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x54], 0xfffffffd
jmp 0xea8630
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + 8]
test edx, edx
je 0xea9090
cmp ebx, 0xf
ja 0xea8a22
test edi, edi
je 0xea97b0
mov ecx, ebx
jmp 0xea8a0b
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0xea8a03
mov ebx, ecx
cmp ebp, 0x8b1f
je 0xea983a
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x10], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0xea8a47
mov dword [eax + 0x30], 0xffffffff
and edx, 1
je 0xea969b
mov ecx, ebp
mov eax, ebp
shl ecx, 8
mov edx, 0x8421085
shr eax, 8
and ecx, 0xffff
add ecx, eax
mov eax, ecx
mul edx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 4
mov eax, edx
shl eax, 5
sub eax, edx
cmp ecx, eax
jne 0xea969b
mov eax, ebp
and eax, 0xf
cmp eax, 8
je 0xea99f0
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x18], 0x1462bb7
mov eax, 0x1d
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
cmp ebx, 0xf
ja 0xea8ae5
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8ace
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xf
jbe 0xea8ac6
mov ebx, ecx
mov eax, dword [esp + 0x3c]
mov edx, ebp
cmp dl, 8
mov dword [eax + 0x10], ebp
je 0xea9645
mov ecx, dword [esp + 0xc0]
mov dword [ecx + 0x18], 0x1462bb7
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00ea7cf0
cmp ebx, 0xd
ja 0xea8b45
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea8b2e
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, 0xd
jbe 0xea8b26
mov ebx, ecx
mov edx, dword [esp + 0x3c]
mov ecx, ebp
mov eax, ebp
shr ecx, 5
and eax, 0x1f
and ecx, 0x1f
add eax, 0x101
add ecx, 1
sub ebx, 0xe
mov dword [edx + 0x64], ecx
mov dword [edx + 0x60], eax
mov edx, ebp
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x3c]
shr edx, 0xa
and edx, 0xf
add edx, 4
shr ebp, 0xe
cmp eax, 0x11e
mov dword [esp + 0x40], edx
mov dword [ecx + 0x5c], edx
ja 0xea9237
cmp dword [esp + 0x44], 0x1e
ja 0xea9237
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x48], edx
mov dword [ecx + 0x68], 0
mov dword [ecx], 0x11
mov ecx, ebx
jmp 0xea8bd1
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x5c]
mov edx, dword [eax + 0x68]
mov dword [esp + 0x40], ecx
cmp ecx, edx
jbe 0xea8c26
mov ecx, ebx
mov dword [esp + 0x48], edx
cmp ecx, 2
ja 0xea8bee
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
mov ebx, dword [esp + 0x48]
mov eax, ebp
sub ecx, 3
mov edx, dword [esp + 0x3c]
and eax, 7
add dword [esp + 0x48], 1
shr ebp, 3
movzx ebx, word [ebx + ebx + 0x1463680]
mov word [edx + ebx*2 + 0x70], ax
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [edx + 0x68], ebx
cmp ebx, eax
jb 0xea8bd1
mov edx, ebx
mov ebx, ecx
cmp edx, 0x12
ja 0xea8c55
mov ecx, dword [esp + 0x3c]
lea eax, [edx + edx + 0x1463680]
movzx edx, word [eax]
add eax, 2
cmp eax, 0x14636a6
mov word [ecx + edx*2 + 0x70], 0
jne 0xea8c36
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x68], 0x13
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [ecx + 0x54], 7
mov dword [ecx + 0x6c], eax
mov dword [ecx + 0x4c], eax
mov eax, ecx
add eax, 0x54
mov dword [esp + 0x10], eax
add eax, 0x18
mov dword [esp + 0xc], eax
add eax, 4
mov dword [esp + 0x14], edx
mov dword [esp + 8], 0x13
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00eae3c0
test eax, eax
mov dword [esp + 0x54], eax
je 0xea991e
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc0]
mov dword [ecx + 0x18], str.invalid_code_lengths_set
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00ea7cf0
movzx eax, word [esp + 0x70]
mov dword [esp + 0x70], eax
movzx eax, dl
add ecx, eax
mov dword [esp + 0x48], eax
mov eax, 1
shl eax, cl
mov ecx, edx
mov edx, dword [esp + 0x44]
sub eax, 1
mov dword [esp + 0x74], eax
and eax, ebp
shr eax, cl
add eax, dword [esp + 0x70]
lea eax, [edx + eax*4]
movzx edx, byte [eax]
mov byte [esp + 0x40], dl
movzx edx, byte [eax + 1]
movzx eax, word [eax + 2]
mov byte [esp + 0x7c], dl
mov word [esp + 0x78], ax
movzx eax, dl
mov edx, dword [esp + 0x48]
add edx, eax
cmp ebx, edx
jb 0xea8d75
jmp 0xea9773
movzx eax, byte [esi]
mov ecx, ebx
add ebx, 8
mov edx, dword [esp + 0x44]
sub edi, 1
add esi, 1
shl eax, cl
movzx ecx, byte [esp + 0x48]
add ebp, eax
mov eax, dword [esp + 0x74]
and eax, ebp
shr eax, cl
add eax, dword [esp + 0x70]
lea eax, [edx + eax*4]
movzx edx, byte [eax]
movzx ecx, byte [eax + 1]
movzx eax, word [eax + 2]
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x48]
mov word [esp + 0x78], ax
movzx eax, cl
add edx, eax
cmp edx, ebx
jbe 0xea976f
test edi, edi
jne 0xea8d26
lea esi, [esi]
mov edx, ebp
mov ebp, dword [esp + 0x3c]
jmp 0xea8630
mov edx, ebp
mov ebx, ecx
mov ebp, dword [esp + 0x3c]
jmp 0xea8630
sub eax, 0xffffff80
xor edx, edx
jmp 0xea8703
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + 0xc]
sub eax, esi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call fcn.00eadfb0
jmp 0xea86ce
cmp edx, 0x13
je 0xea86fe
xor edx, edx
nop
lea esi, [esi]
jmp 0xea8703
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x54], 0xfffffffe
mov eax, dword [ebx + 4]
test eax, eax
jne 0xea7bf4
mov dword [esp + 0x58], 0
jmp 0xea7b87
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0xea88da
mov dword [eax + 0x24], 0
jmp 0xea88da
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0xea882c
mov dword [eax + 0x1c], 0
jmp 0xea882c
mov ecx, dword [esp + 0x3c]
mov eax, 0xb
mov dword [ecx], 0xb
jmp switch.0x00ea7cf0
mov edx, dword [esp + 0x50]
sub edx, eax
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x40], eax
mov ecx, eax
cmp eax, dword [esp + 0x4c]
cmova eax, dword [esp + 0x4c]
sub dword [esp + 0x4c], eax
sub ecx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x44]
shr ecx, 2
mov dword [esp + 0x40], ecx
shl ecx, 2
test ecx, ecx
mov dword [esp + 0x48], ecx
je 0xea9bbe
mov eax, dword [esp + 0x50]
add eax, 4
cmp edx, eax
seta cl
lea eax, [edx + 4]
cmp dword [esp + 0x50], eax
seta al
or ecx, eax
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x44], 9
seta byte [esp + 0x60]
or eax, edx
test al, 3
sete al
and byte [esp + 0x60], al
test byte [esp + 0x60], cl
je 0xea9bbe
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x50]
xor eax, eax
lea esi, [esi]
mov ecx, dword [edx + eax*4]
mov dword [esi + eax*4], ecx
add eax, 1
cmp eax, dword [esp + 0x40]
jb 0xea8ef0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x48]
add edx, dword [esp + 0x48]
cmp dword [esp + 0x44], eax
mov esi, dword [esp + 0x60]
je 0xea8f44
mov dword [esp + 0x48], esi
xor eax, eax
mov esi, edx
lea esi, [esi]
movzx edx, byte [esi + eax]
mov byte [ecx + eax], dl
add eax, 1
cmp eax, dword [esp + 0x40]
jne 0xea8f30
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
add dword [esp + 0x50], eax
mov eax, dword [edx + 0x40]
test eax, eax
je 0xea8f60
mov eax, dword [edx]
jmp 0xea7be3
mov dword [edx], 0x14
mov eax, 0x14
jmp switch.0x00ea7cf0
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x20]
test ecx, ecx
mov dword [esp + 0x48], ecx
je 0xea8fe4
mov ecx, dword [ecx + 0x10]
test ecx, ecx
mov dword [esp + 0x44], ecx
je 0xea8fe4
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0x14]
sub ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0x18]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov dword [esp + 4], esi
add ecx, edx
mov dword [esp + 0x60], ecx
mov ecx, eax
sub ecx, dword [esp + 0x40]
cmp dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], ecx
cmovbe ecx, edx
add eax, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x40], eax
test dword [esp + 0x40], 0x200
jne 0xea9598
mov ecx, dword [esp + 0x3c]
sub edi, edx
add esi, edx
mov eax, dword [ecx + 0x40]
sub eax, edx
mov dword [ecx + 0x40], eax
jmp 0xea8771
cmp ebx, edx
jae 0xea9035
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea901f
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea9017
mov ebx, ecx
mov ecx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3c]
sub ebx, edx
sub eax, 1
and eax, ebp
add eax, dword [ecx + 0x40]
mov dword [ecx + 0x40], eax
mov ecx, edx
shr ebp, cl
mov ecx, dword [esp + 0x3c]
add dword [ecx + 0x1bc4], edx
mov edx, ecx
jmp 0xea8048
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x10]
jmp 0xea82dd
mov ebx, dword [esp + 0x4c]
xor ebp, ebp
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x5c], ebx
xor ebx, ebx
mov dword [edx], 0x1b
jmp 0xea85ac
mov dword [ecx], 0xc
mov eax, 0xc
jmp switch.0x00ea7cf0
mov edx, dword [ecx + 0x1bc0]
test edx, edx
je 0xea7efb
mov eax, dword [esp + 0xc0]
mov dword [eax + 0x18], 0x1462d25
mov eax, 0x1d
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
mov ecx, dword [esp + 0x3c]
movzx eax, al
mov edx, dword [ecx + 0x1bc4]
mov ecx, eax
add eax, edx
mov edx, dword [esp + 0x3c]
shr ebp, cl
sub ebx, dword [esp + 0x48]
test byte [esp + 0x74], 0x40
mov dword [edx + 0x1bc4], eax
je 0xea94d6
mov ecx, dword [esp + 0xc0]
mov eax, 0x1d
mov dword [ecx + 0x18], 0x1462d0f
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
mov ecx, dword [esp + 0x3c]
mov eax, 0x10
mov dword [ecx], 0x10
jmp 0xea7e21
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x20]
xor ecx, ecx
test eax, eax
je 0xea8347
mov dword [eax + 0x10], 0
jmp 0xea8347
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp], ecx
call fcn.00eadc40
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x18], eax
jmp 0xea88c3
cmp dword [esp + 0x4c], 0x101
jbe 0xea7f54
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov dword [ecx], esi
mov esi, dword [esp + 0x3c]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edx
mov dword [ecx + 4], edi
mov dword [esi + 0x3c], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esi + 0x38], ebp
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00eaec50
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc0]
mov ebx, dword [ebx + 0x10]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x50], esi
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
mov ebx, dword [esp + 0x3c]
mov eax, ebx
mov ebp, dword [ebx + 0x38]
mov edx, eax
mov eax, dword [eax]
mov ebx, dword [ebx + 0x3c]
cmp eax, 0xb
jne 0xea7be3
mov dword [edx + 0x1bc4], 0xffffffff
jmp switch.0x00ea7cf0
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp], ecx
call fcn.00eadc40
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x18], eax
jmp 0xea8815
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x18], 0x1462c44
mov eax, 0x1d
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
sub edx, eax
add edx, dword [ecx + 0x34]
jmp 0xea7f18
xor ebx, ebx
xor ebp, ebp
jmp 0xea88ed
movzx ecx, byte [esp + 0x40]
test cl, 0xf0
je 0xea8ccb
movzx eax, dl
mov ecx, edx
mov edx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x60]
shr ebp, cl
mov dword [edx + 0x1bc4], eax
movzx eax, word [esp + 0x70]
mov dword [edx + 0x40], eax
movzx edx, byte [esp + 0x40]
test dl, 0x20
je 0xea95c3
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x1bc4], 0xffffffff
mov dword [eax], 0xb
mov eax, 0xb
jmp switch.0x00ea7cf0
cmp word [esp + 0x70], 0x10
movzx edx, dl
je 0xea96ff
cmp word [esp + 0x70], 0x11
mov dword [esp + 0x40], edx
je 0xea97da
add edx, 7
cmp ebx, edx
jae 0xea932e
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea9318
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea9310
mov ebx, ecx
movzx ecx, byte [esp + 0x40]
sub ebx, dword [esp + 0x48]
shr ebp, cl
sub ebx, 7
mov eax, ebp
and eax, 0x7f
add eax, 0xb
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x40]
shr ebp, 7
xor eax, eax
add edx, dword [esp + 0x60]
cmp dword [esp + 0x74], edx
mov dword [esp + 0x70], edx
jb 0xea9b22
mov edx, dword [esp + 0x40]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x60]
sub edx, 1
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x3c]
add eax, 0x38
mov dword [esp + 0x84], eax
lea ecx, [edx + eax*2]
mov eax, dword [esp + 0x60]
shl ecx, 0x1e
shr ecx, 0x1f
cmp dword [esp + 0x40], ecx
cmovbe ecx, dword [esp + 0x40]
test ecx, ecx
je 0xea93f5
mov dword [esp + 0x7c], esi
mov esi, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x88], ebp
movzx ebp, word [esp + 0x48]
mov dword [esp + 0x80], edi
mov edi, eax
mov dword [esp + 0x8c], ebx
mov word [esi + eax*2 + 0x70], bp
add eax, 1
sub edx, 1
mov ebx, eax
sub ebx, edi
cmp ecx, ebx
ja 0xea93c5
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x40]
sub edx, ecx
mov dword [esp + 0x40], edx
shr edx, 1
mov dword [esp + 0x60], edx
add edx, edx
mov dword [esp + 0x7c], edx
je 0xea9488
movzx edx, word [esp + 0x48]
add ecx, dword [esp + 0x84]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x60]
shl edx, 0x10
mov dword [esp + 0x88], edx
movzx edx, word [esp + 0x48]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x88]
or dword [esp + 0x80], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x80]
lea ecx, [edx + ecx*2]
xor edx, edx
nop
mov dword [ecx + edx*4], edi
add edx, 1
cmp esi, edx
ja 0xea9460
mov ecx, dword [esp + 0x7c]
sub dword [esp + 0x44], ecx
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
add eax, ecx
cmp dword [esp + 0x40], ecx
je 0xea94c0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x40], esi
movzx esi, word [esp + 0x48]
lea edx, [edx + edx + 2]
mov dword [esp + 0x44], edx
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x44]
xor edx, edx
lea esi, [esi]
mov word [eax + edx + 0x70], si
add edx, 2
cmp edx, ecx
jne 0xea94b0
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov dword [eax + 0x68], edx
mov eax, edx
jmp 0xea83f5
movzx eax, word [esp + 0x60]
mov ecx, edx
mov dword [ecx], 0x17
mov dword [edx + 0x44], eax
movzx edx, byte [esp + 0x44]
and edx, 0xf
mov dword [ecx + 0x48], edx
jmp 0xea7e67
mov eax, ebp
mov byte [esp + 0x9c], al
mov eax, ebp
shr eax, 8
mov byte [esp + 0x9d], al
lea eax, [esp + 0x9c]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x18], eax
mov ebx, dword [esp + 0x3c]
jmp 0xea82d3
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0xc4], 6
mov dword [eax + 0x4c], 0x1462e00
mov dword [eax + 0x54], 9
mov dword [eax + 0x50], 0x1463600
mov dword [eax + 0x58], 5
mov dword [eax], 0x13
je 0xea9b13
mov eax, 0x13
jmp 0xea7e21
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x18], 0x1462c13
mov eax, 0x1d
mov dword [ecx], 0x1d
jmp 0xea7e21
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp], eax
call fcn.00eadc40
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x18], eax
jmp 0xea8ff2
test dl, 0x40
je 0xea97c5
mov edx, dword [esp + 0xc0]
mov eax, 0x1d
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x18], 0x1462cf3
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
mov eax, ebp
mov byte [esp + 0x9c], al
mov eax, ebp
shr eax, 8
mov byte [esp + 0x9d], al
mov eax, ebp
shr eax, 0x10
mov byte [esp + 0x9e], al
mov eax, ebp
shr eax, 0x18
mov byte [esp + 0x9f], al
lea eax, [esp + 0x9c]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov dword [ebx + 0x18], eax
mov ebx, dword [esp + 0x3c]
jmp 0xea826b
test ebp, 0xe000
je 0xea98b2
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x18], str.unknown_header_flags_set
mov eax, 0x1d
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
mov ebx, dword [esp + 0x3c]
cmp dword [esp + 0xc4], 6
mov dword [ebx + 0x40], edx
mov dword [ebx], 0xe
je 0xea9b3f
xor ebx, ebx
xor ebp, ebp
mov eax, dword [esp + 0x3c]
jmp 0xea894c
mov edx, dword [esp + 0xc0]
mov eax, 0x1d
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x18], 0x1462ba0
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
mov ebx, dword [esp + 0x3c]
mov eax, ebp
mov byte [esp + 0x9c], al
mov eax, ebp
shr eax, 8
mov byte [esp + 0x9d], al
lea eax, [esp + 0x9c]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x18], eax
jmp 0xea8337
mov dword [esp + 0x40], edx
add edx, 2
cmp ebx, edx
jae 0xea9734
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea971e
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea9716
mov ebx, ecx
movzx ecx, byte [esp + 0x40]
mov eax, dword [esp + 0x60]
sub ebx, dword [esp + 0x48]
shr ebp, cl
test eax, eax
je 0xea9bcf
mov edx, dword [esp + 0x60]
sub ebx, 2
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + edx*2 + 0x6e]
mov edx, ebp
and edx, 3
add edx, 3
mov dword [esp + 0x40], edx
shr ebp, 2
jmp 0xea9351
mov byte [esp + 0x7c], cl
movzx ecx, byte [esp + 0x48]
sub ebx, dword [esp + 0x60]
shr ebp, cl
mov ecx, eax
movzx eax, byte [esp + 0x7c]
shr ebp, cl
sub ebx, eax
mov eax, dword [esp + 0x3c]
cmp byte [esp + 0x40], 0
mov dword [eax + 0x1bc4], edx
movzx eax, word [esp + 0x78]
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x40], eax
jne 0xea92ab
jmp 0xea801e
mov edx, ebp
mov ebp, ecx
jmp 0xea8630
mov dword [esp + 0x48], edx
lea esi, [esi]
jmp 0xea80ee
mov eax, dword [esp + 0x3c]
and edx, 0xf
mov dword [eax + 0x48], edx
mov dword [eax], 0x15
jmp 0xea8039
add edx, 3
cmp ebx, edx
jae 0xea980e
test edi, edi
je 0xea8d80
mov ecx, ebx
jmp 0xea97f8
test edi, edi
je 0xea8d90
movzx eax, byte [esi]
sub edi, 1
add esi, 1
shl eax, cl
add ecx, 8
add ebp, eax
cmp ecx, edx
jb 0xea97f0
mov ebx, ecx
movzx ecx, byte [esp + 0x40]
shr ebp, cl
mov eax, ebp
and eax, 7
add eax, 3
mov dword [esp + 0x40], eax
mov eax, 0xfffffffd
mov edx, dword [esp + 0x40]
sub eax, dword [esp + 0x48]
shr ebp, 3
add ebx, eax
xor eax, eax
jmp 0xea9351
test dl, 2
je 0xea8a2e
mov dword [esp + 8], 0
xor bp, bp
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00eadc40
mov ebx, dword [esp + 0x3c]
lea edx, [esp + 0x9c]
mov byte [esp + 0x9c], 0x1f
mov byte [esp + 0x9d], 0x8b
mov dword [ebx + 0x18], eax
mov dword [esp + 8], 2
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00eadc40
mov dword [ebx], 1
mov dword [ebx + 0x18], eax
mov eax, 1
xor ebx, ebx
jmp switch.0x00ea7cf0
mov edx, ebp
mov ebp, eax
jmp 0xea8630
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x20]
test eax, eax
je 0xea98c7
mov edx, ebp
shr edx, 8
and edx, 1
mov dword [eax], edx
test ebp, 0x200
jne 0xea99a6
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
mov dword [ebx], 2
xor ebx, ebx
jmp 0xea8225
mov edx, ebp
mov ebp, dword [esp + 0x3c]
mov dword [ebp], 0x1c
mov dword [esp + 0x54], 1
jmp 0xea8630
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [ecx + 0x18]
mov dword [esp], eax
call fcn.00eadfb0
jmp 0xea7c85
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], 0
mov dword [edx + 0x68], 0
mov ecx, edx
mov eax, edx
mov dword [edx], 0x12
jmp 0xea83e3
mov ecx, dword [esp + 0xc0]
mov edx, ebp
mov ebp, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], 2
mov dword [ecx], esi
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 4], edi
mov dword [ecx + 0x10], eax
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x3c], ebx
jmp 0xea7bf4
cmp dword [edx], 0x1d
je 0xea8614
cmp word [edx + 0x270], 0
jne 0xea9a64
mov ecx, dword [esp + 0xc0]
mov eax, 0x1d
mov dword [ecx + 0x18], str.invalid_code____missing_end_of_block
mov dword [edx], 0x1d
jmp switch.0x00ea7cf0
mov ebx, dword [esp + 0x3c]
mov eax, ebp
mov byte [esp + 0x9c], al
mov eax, ebp
shr eax, 8
mov byte [esp + 0x9d], al
lea eax, [esp + 0x9c]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.00eadc40
mov dword [ebx + 0x18], eax
jmp 0xea98d3
mov ebp, eax
xor ebx, ebx
xor edx, edx
jmp 0xea98ec
mov edx, dword [esp + 0x3c]
shr ebp, 4
mov ecx, ebp
and ecx, 0xf
add ecx, 8
mov eax, dword [edx + 0x24]
test eax, eax
jne 0xea9ae6
mov dword [edx + 0x24], ecx
mov ebx, dword [esp + 0x3c]
mov eax, 1
and ebp, 0x200
shl eax, cl
mov dword [ebx + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00eadfb0
cmp ebp, 1
mov dword [ebx + 0x18], eax
mov ebx, dword [esp + 0xc0]
mov dword [ebx + 0x30], eax
mov ebx, dword [esp + 0x3c]
sbb eax, eax
and eax, 2
xor ebp, ebp
add eax, 9
mov dword [ebx], eax
xor ebx, ebx
jmp 0xea7be3
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x54], 9
mov dword [eax + 0x6c], edx
mov dword [eax + 0x4c], edx
mov edx, eax
add eax, 0x54
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
add edx, 0x6c
mov dword [esp + 0xc], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], 1
add eax, 0x70
mov dword [esp + 4], eax
call fcn.00eae3c0
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x54], eax
je 0xea9b4c
mov edx, dword [esp + 0xc0]
mov eax, 0x1d
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x18], str.invalid_literal_lengths_set
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
cmp ecx, eax
jbe 0xea9a0d
mov eax, dword [esp + 0x3c]
sub ebx, 4
mov ecx, dword [esp + 0xc0]
mov dword [ecx + 0x18], 0x1462bd2
mov dword [eax], 0x1d
mov eax, 0x1d
jmp switch.0x00ea7cf0
mov edx, ebp
sub ebx, 3
mov ebp, eax
shr edx, 3
jmp 0xea8630
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x18], 0x1462c81
mov dword [eax], 0x1d
jmp 0xea8614
mov ebp, dword [esp + 0x3c]
xor ebx, ebx
xor edx, edx
jmp 0xea8630
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x6c]
mov dword [ecx + 0x58], 6
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
mov eax, ecx
add eax, 0x58
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x64]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x60]
mov dword [esp], 2
lea eax, [ecx + eax*2 + 0x70]
mov dword [esp + 4], eax
call fcn.00eae3c0
test eax, eax
mov dword [esp + 0x54], eax
je 0xea7f29
mov edx, dword [esp + 0xc0]
mov eax, 0x1d
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x18], str.invalid_distances_set
mov dword [ecx], 0x1d
jmp switch.0x00ea7cf0
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x50]
jmp 0xea8f25
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov dword [eax + 0x18], 0x1462c81
mov dword [edx], 0x1d
jmp 0xea8614