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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0x18]
test ebx, ebx
jne 0x4c0172
test eax, eax
je 0x4c0161
xor ebx, ebx
mov dword [eax], ebx
test esi, esi
je 0x4c020b
xor ecx, ecx
mov dword [esi], ecx
jmp 0x4c020b
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x74], edi
mov dword [ebx + 0x70], ecx
mov dword [ebx + 0x7c], esi
mov dword [ebx + 0x84], ecx
mov dword [ebp - 0x28], edx
test eax, eax
je 0x4c0195
mov ecx, dword [eax]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov edx, edi
mov dword [ebx + 0x88], ecx
xor ecx, ecx
cmp dword [ebx], 0
mov dword [ebx + 0x8c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebx + 0x80], ecx
sete cl
or edx, esi
setne dl
cmp cl, dl
jne 0x4c01f4
cmp dword [ebx + 0x6c], 0
jne 0x4c01f4
mov edx, dword [ebx + 0x68]
test edx, edx
je 0x4c01d3
cmp dword [ebp + 0x1c], 4
jne 0x4c01f4
test eax, eax
je 0x4c01e2
cmp dword [eax], 0
je 0x4c01e2
cmp dword [ebp + 0xc], 0
je 0x4c01f8
test esi, esi
je 0x4c0215
cmp dword [esi], 0
je 0x4c0215
test edi, edi
jne 0x4c0215
jmp 0x4c0f30
test eax, eax
je 0x4c01fc
xor edx, edx
mov dword [eax], edx
test esi, esi
je 0x4c0204
xor eax, eax
mov dword [esi], eax
mov dword [ebx + 0x6c], 0xfffffffe
mov eax, 0xfffffffe
jmp 0x4c0fd7
xor eax, eax
cmp dword [ebp + 0x1c], 4
sete al
or edx, eax
cmp dword [ebx + 0x5c], 0
mov dword [ebp - 0x4c], eax
mov dword [ebx + 0x68], edx
jne 0x4c0f21
cmp dword [ebx + 0x60], 0
jne 0x4c0f21
mov eax, dword [ebx + 8]
and eax, 0xb4fff
cmp eax, 0x4001
je 0x4c025c
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x1c], 0
sete byte [ebp - 0x57]
mov dword [ebp - 0x34], eax
jmp 0x4c06a2
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
and eax, 0x7fff
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4c0602
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x2c]
lea edx, [edi + esi]
and edx, 0x7fff
mov dword [ebp - 0x34], edx
mov edx, 0x1000
sub edx, esi
cmp edx, eax
cmova edx, eax
add dword [ebp - 0x20], edx
sub eax, edx
mov dword [ebx + 0x88], eax
lea eax, [ebx + 0x90]
mov dword [ebp - 0x44], eax
mov eax, 0x8000
test edx, edx
je 0x4c0345
mov edi, dword [ebp - 0x34]
mov esi, dword [ebx + 0x84]
sub eax, edi
cmp eax, edx
cmova eax, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
add eax, edi
cmp dword [ebp - 0x34], 0x100
mov edi, eax
rep movsb byte es:[edi], byte [esi]
ja 0x4c0328
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x44]
mov ecx, 0x101
mov esi, dword [ebx + 0x84]
sub ecx, edi
lea eax, [eax + edi + 0x8000]
mov edi, dword [ebp - 0x3c]
cmp ecx, edi
cmova ecx, edi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
add dword [ebx + 0x84], eax
mov eax, dword [ebp - 0x34]
sub edx, edi
add eax, edi
and eax, 0x7fff
mov dword [ebp - 0x34], eax
jmp 0x4c02d1
mov esi, dword [ebp - 0x20]
sub eax, esi
cmp dword [ebp - 0x28], eax
cmovbe eax, dword [ebp - 0x28]
cmp dword [ebx + 0x80], 0
mov dword [ebp - 0x28], eax
jne 0x4c037e
cmp esi, 0xfff
ja 0x4c037e
jmp 0x4c0615
mov edi, dword [ebp - 0x1c]
sub dword [ebp - 0x20], eax
lea eax, [ebx + 0x1926a]
cmp eax, edi
jb 0x4c04ec
cmp dword [ebp - 0x20], 3
jbe 0x4c05a8
mov eax, dword [ebp - 0x40]
lea ecx, [ebx + 0x90]
mov edi, dword [ebp - 0x2c]
lea esi, [ecx + eax]
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
and eax, 0xffffff
mov edx, eax
mov dword [ebp - 0x34], eax
shr edx, 0x11
xor edx, eax
and edx, 0xfff
add edx, 0x14938
mov ax, word [ebx + edx*2 + 2]
mov word [ebx + edx*2 + 2], di
sub edi, eax
mov word [ebp - 0x44], di
movzx edi, di
cmp dword [ebp - 0x28], edi
jb 0x4c0464
and eax, 0x7fff
add eax, ecx
mov edx, dword [eax]
and edx, 0xffffff
cmp dword [ebp - 0x34], edx
jne 0x4c0464
mov dword [ebp - 0x48], 0x20
mov edx, esi
mov cx, word [eax + 2]
cmp word [edx + 2], cx
jne 0x4c0436
mov cx, word [eax + 4]
cmp word [edx + 4], cx
je 0x4c040c
add edx, 4
add eax, 4
jmp 0x4c043c
mov cx, word [eax + 6]
cmp word [edx + 6], cx
je 0x4c041e
add edx, 6
add eax, 6
jmp 0x4c043c
add edx, 8
add eax, 8
mov cx, word [eax]
cmp word [edx], cx
jne 0x4c043c
dec dword [ebp - 0x48]
jne 0x4c03f0
jmp 0x4c0f41
add edx, 2
add eax, 2
mov al, byte [eax]
cmp byte [edx], al
sete al
sub edx, esi
movzx eax, al
add eax, edx
cmp eax, 2
jbe 0x4c0464
cmp eax, 3
jne 0x4c0f4e
cmp edi, 0x1fff
jbe 0x4c0f4e
mov esi, dword [ebp - 0x1c]
mov al, byte [ebp - 0x34]
mov byte [esi], al
mov eax, dword [ebp - 0x24]
shr byte [eax], 1
movzx eax, byte [ebp - 0x3c]
inc word [ebx + eax*2 + 0x8192]
mov eax, esi
inc eax
mov dword [ebp - 0x1c], eax
mov eax, 1
dec dword [ebp - 0x30]
jne 0x4c04a0
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x30], 8
mov dword [ebp - 0x24], edi
lea edi, [edi + 1]
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x28]
mov edx, 0x8000
add dword [ebp - 0x38], eax
add dword [ebp - 0x2c], eax
add ecx, eax
cmp ecx, edx
cmovbe edx, ecx
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x40]
add edx, eax
and edx, 0x7fff
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x20], eax
jae 0x4c036a
mov dword [esp + 8], 0x613
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.lookahead_size___cur_match_len
call dword [sym.imp.msvcrt.dll__assert]
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x28], edi
xor edx, edx
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], eax
mov eax, ebx
call fcn.004c14b0
test eax, eax
jne 0x4c0688
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x30], eax
jmp 0x4c037e
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x1c]
inc dword [ebp - 0x38]
movzx eax, byte [ebx + eax + 0x90]
lea edx, [esi + 1]
mov edi, esi
mov byte [esi], al
mov esi, dword [ebp - 0x24]
shr byte [esi], 1
dec dword [ebp - 0x30]
jne 0x4c0570
mov dword [ebp - 0x30], 8
mov dword [ebp - 0x24], edx
lea edx, [edi + 2]
mov ecx, dword [ebp - 0x28]
inc word [ebx + eax*2 + 0x8192]
mov eax, 0x8000
inc dword [ebp - 0x2c]
inc ecx
cmp ecx, eax
cmovbe eax, ecx
dec dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
inc eax
and eax, 0x7fff
mov dword [ebp - 0x40], eax
lea eax, [ebx + 0x1926a]
cmp eax, edx
jb 0x4c05b3
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x20], 0
jne 0x4c0541
jmp 0x4c0291
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x28], edx
xor edx, edx
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], eax
mov eax, ebx
call fcn.004c14b0
test eax, eax
jne 0x4c0688
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x28]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x30], eax
jmp 0x4c05a5
cmp dword [ebx + 0x80], 0
je 0x4c0615
cmp dword [ebp - 0x20], 0
jne 0x4c029f
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x38]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], eax
jmp 0x4c0e91
sub edx, eax
add dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x20], edx
mov edx, 0x8000
cmp eax, edx
cmova eax, edx
lea edx, [ebx + 0x1926a]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x28]
cmp edx, eax
jae 0x4c0693
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dword [ebx + 0x84], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x88], eax
mov eax, ebx
call fcn.004c14b0
test eax, eax
je 0x4c06a2
jns 0x4c0e91
jmp 0x4c0ee8
mov edx, dword [ebx + 0x3c]
cmp edx, 0x7c00
ja 0x4c0e4a
cmp dword [ebp - 0x28], 0
je 0x4c0e6f
mov eax, dword [ebx + 0x20]
mov edi, dword [ebx + 0x24]
mov dword [ebp - 0x1c], eax
add eax, edi
cmp eax, 1
jbe 0x4c0833
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebx + 0x1c]
lea eax, [ecx - 2]
mov edx, ecx
dec ecx
mov dword [ebp - 0x20], eax
and eax, 0x7fff
and ecx, 0x7fff
and edx, 0x7fff
movzx eax, byte [ebx + eax + 0x90]
movzx ecx, byte [ebx + ecx + 0x90]
shl eax, 5
xor eax, ecx
mov ecx, 0x102
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x28]
cmp ecx, eax
cmova ecx, eax
mov eax, dword [ebp - 0x34]
add dword [ebp - 0x1c], ecx
sub dword [ebp - 0x28], ecx
add eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x20], eax
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x2c], esi
je 0x4c083d
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
movzx ecx, byte [eax - 1]
mov byte [ebx + edx + 0x90], cl
cmp edx, 0x100
ja 0x4c074a
mov byte [ebx + edx + 0x8090], cl
mov eax, dword [ebp - 0x24]
inc edx
and edx, 0x7fff
shl eax, 5
xor eax, ecx
mov ecx, dword [ebp - 0x20]
and eax, 0x7fff
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x24]
and ecx, 0x7fff
mov eax, ecx
lea ecx, [esi + 0x14938]
mov si, word [ebx + ecx*2 + 2]
mov word [ebx + eax*2 + 0x19272], si
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x20]
mov word [ebx + ecx*2 + 2], ax
jmp 0x4c071e
cmp dword [ebp - 0x1c], 0x101
ja 0x4c083d
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x1c]
dec dword [ebp - 0x28]
movzx edx, byte [eax - 1]
mov eax, dword [ebx + 0x1c]
lea ecx, [eax + esi]
and ecx, 0x7fff
mov byte [ebx + ecx + 0x90], dl
cmp ecx, 0x100
ja 0x4c07ce
mov byte [ebx + ecx + 0x8090], dl
inc dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
lea ecx, [edi + esi]
mov dword [ebx + 0x20], esi
cmp ecx, 2
jbe 0x4c0833
add eax, esi
lea esi, [eax - 3]
sub eax, 2
mov ecx, esi
and eax, 0x7fff
and ecx, 0x7fff
mov dword [ebp - 0x20], ecx
movzx ecx, byte [ebx + eax + 0x90]
mov eax, dword [ebp - 0x20]
shl ecx, 5
movzx eax, byte [ebx + eax + 0x90]
shl eax, 0xa
xor eax, ecx
mov ecx, dword [ebp - 0x20]
xor eax, edx
and eax, 0x7fff
add eax, 0x14938
mov dx, word [ebx + eax*2 + 2]
mov word [ebx + ecx*2 + 0x19272], dx
mov word [ebx + eax*2 + 2], si
cmp dword [ebp - 0x28], 0
jne 0x4c078f
mov esi, dword [ebp - 0x1c]
mov eax, 0x8000
sub eax, esi
cmp eax, edi
cmovbe edi, eax
mov dword [ebp - 0x38], edi
mov dword [ebx + 0x24], edi
cmp esi, 0x101
ja 0x4c0864
cmp byte [ebp - 0x57], 0
jne 0x4c0e7f
mov eax, dword [ebx + 0x50]
mov edi, dword [ebx + 0x1c]
test eax, eax
mov dword [ebp - 0x2c], eax
mov eax, 2
cmovne eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], edi
and edi, 0x7fff
mov dword [ebp - 0x30], edi
mov edi, dword [ebx + 8]
mov esi, edi
mov dword [ebp - 0x40], edi
and esi, 0x90000
mov dword [ebp - 0x20], esi
je 0x4c08f0
cmp dword [ebp - 0x38], 0
je 0x4c0ae7
and edi, 0x80000
mov dword [ebp - 0x20], edi
jne 0x4c0ae7
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x30]
dec eax
lea ecx, [ebx + edi]
and eax, 0x7fff
mov dl, byte [ebx + eax + 0x90]
xor eax, eax
mov edi, dword [ebp - 0x1c]
cmp eax, edi
je 0x4c08db
cmp dl, byte [ecx + eax + 0x90]
jne 0x4c08db
inc eax
jmp 0x4c08c8
cmp eax, 2
jbe 0x4c0b05
mov dword [ebp - 0x20], 1
jmp 0x4c0af1
cmp dword [ebp - 0x1c], 0x102
jbe 0x4c0915
mov dword [esp + 8], 0x555
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.max_match_len___TDEFL_MAX_MATCH_LEN
jmp 0x4c04e6
mov edi, dword [ebp - 0x1c]
cmp eax, edi
jae 0x4c0af1
xor edx, edx
cmp eax, 0x1f
lea edi, [ebx + 0x90]
seta dl
mov dword [ebp - 0x54], edi
mov esi, dword [ebx + edx*4 + 0xc]
lea edx, [ebx + eax]
mov dword [ebp - 0x5c], esi
mov esi, dword [ebp - 0x30]
add esi, edi
mov dword [ebp - 0x44], esi
mov esi, dword [ebp - 0x30]
lea edi, [esi + 0x8f]
mov si, word [edx + edi]
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 0x44]
mov word [ebp - 0x48], si
mov si, word [edi]
lea edi, [edi + 0x100]
mov dword [ebp - 0x60], edi
mov word [ebp - 0x56], si
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x24], esi
dec dword [ebp - 0x5c]
je 0x4c0af1
mov esi, dword [ebp - 0x24]
mov dx, word [ebx + esi*2 + 0x19272]
test dx, dx
je 0x4c0af1
mov esi, dword [ebp - 0x3c]
sub esi, edx
movzx esi, si
cmp dword [ebp - 0x38], esi
jb 0x4c0af1
mov edi, edx
mov edx, dword [ebp - 0x48]
and edi, 0x7fff
mov dword [ebp - 0x24], edi
add edi, ebx
cmp word [eax + edi + 0x8f], dx
je 0x4c0a3e
mov esi, dword [ebp - 0x24]
mov dx, word [ebx + esi*2 + 0x19272]
test dx, dx
je 0x4c0af1
mov esi, dword [ebp - 0x3c]
sub esi, edx
movzx esi, si
cmp dword [ebp - 0x38], esi
jb 0x4c0af1
mov edi, edx
mov edx, dword [ebp - 0x48]
and edi, 0x7fff
mov dword [ebp - 0x24], edi
add edi, ebx
cmp dx, word [eax + edi + 0x8f]
je 0x4c0a3e
mov esi, dword [ebp - 0x24]
mov dx, word [ebx + esi*2 + 0x19272]
test dx, dx
je 0x4c0af1
mov esi, dword [ebp - 0x3c]
sub esi, edx
movzx esi, si
cmp dword [ebp - 0x38], esi
jb 0x4c0af1
mov edi, edx
mov edx, dword [ebp - 0x48]
and edi, 0x7fff
mov dword [ebp - 0x24], edi
add edi, ebx
cmp dx, word [eax + edi + 0x8f]
jne 0x4c0970
test esi, esi
je 0x4c0af1
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x54]
add edi, ecx
mov cx, word [ebp - 0x56]
cmp cx, word [edi]
jne 0x4c0970
mov ecx, dword [ebp - 0x44]
mov dx, word [edi + 2]
cmp word [ecx + 2], dx
jne 0x4c0aa6
mov dx, word [edi + 4]
cmp word [ecx + 4], dx
je 0x4c0a7a
add ecx, 4
add edi, 4
jmp 0x4c0aac
mov dx, word [edi + 6]
cmp word [ecx + 6], dx
je 0x4c0a8c
add ecx, 6
add edi, 6
jmp 0x4c0aac
add ecx, 8
add edi, 8
mov dx, word [edi]
cmp word [ecx], dx
jne 0x4c0aac
mov edx, dword [ebp - 0x60]
cmp ecx, edx
jne 0x4c0a5e
mov eax, dword [ebp - 0x1c]
jmp 0x4c0aee
add ecx, 2
add edi, 2
mov dl, byte [edi]
cmp byte [ecx], dl
sete dl
movzx edx, dl
mov edi, edx
mov edx, dword [ebp - 0x44]
sub ecx, edx
add edi, ecx
cmp eax, edi
jae 0x4c0970
mov eax, dword [ebp - 0x1c]
cmp edi, eax
cmovbe eax, edi
jae 0x4c0aee
mov edi, dword [ebp - 0x50]
lea ecx, [ebx + eax]
mov dword [ebp - 0x20], esi
mov di, word [ecx + edi]
mov word [ebp - 0x48], di
jmp 0x4c0970
xor edi, edi
mov dword [ebp - 0x20], edi
jmp 0x4c0af1
mov dword [ebp - 0x20], esi
cmp eax, 3
jne 0x4c0b07
cmp dword [ebp - 0x20], 0x1fff
ja 0x4c0c42
jmp 0x4c0b07
xor eax, eax
mov edi, dword [ebp - 0x20]
cmp dword [ebp - 0x30], edi
je 0x4c0c42
bt dword [ebp - 0x40], 0x11
jae 0x4c0b23
cmp eax, 5
jbe 0x4c0c42
cmp dword [ebp - 0x2c], 0
je 0x4c0cf5
cmp dword [ebp - 0x2c], eax
jae 0x4c0c4c
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx + 0x54]
inc dword [ebx + 0x3c]
lea esi, [ecx + 1]
mov dword [ebx + 0x28], esi
mov byte [ecx], dl
mov ecx, dword [ebx + 0x2c]
shr byte [ecx], 1
mov ecx, dword [ebx + 0x38]
dec ecx
je 0x4c0b57
mov dword [ebx + 0x38], ecx
jmp 0x4c0b6a
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x38], 8
lea esi, [ecx + 1]
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x28], esi
movzx edx, dl
inc word [ebx + edx*2 + 0x8192]
cmp eax, 0x7f
jbe 0x4c0c32
mov edx, dword [ebp - 0x20]
dec edx
mov dword [ebp - 0x1c], edx
cmp edx, 0x7fff
jbe 0x4c0ba9
mov dword [esp + 8], 0x66d
mov dword [esp + 4], str.miniz.c
mov dword [esp], str._match_len___TDEFL_MIN_MATCH_LEN____match_dist___1____match_dist___TDEFL_LZ_DICT_SIZE_
jmp 0x4c04e6
mov esi, dword [ebx + 0x28]
lea ecx, [eax - 3]
add dword [ebx + 0x3c], eax
mov dl, byte [ebp - 0x1c]
mov byte [esi], cl
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0x28]
shr esi, 8
mov byte [ecx + 1], dl
mov ecx, dword [ebx + 0x28]
mov edx, esi
mov byte [ecx + 2], dl
mov edi, dword [ebx + 0x2c]
add dword [ebx + 0x28], 3
mov cl, byte [edi]
shr cl, 1
or ecx, 0xffffff80
mov byte [edi], cl
mov ecx, dword [ebx + 0x38]
dec ecx
je 0x4c0be6
mov dword [ebx + 0x38], ecx
jmp 0x4c0bf9
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x38], 8
lea edi, [ecx + 1]
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x28], edi
cmp dword [ebp - 0x1c], 0x1ff
ja 0x4c0c0e
mov esi, dword [ebp - 0x1c]
movzx edx, byte [esi + 0x5ac0c0]
jmp 0x4c0c15
movzx edx, byte [esi + 0x5abae0]
inc word [ebx + edx*2 + 0x83d2]
movzx edx, word [eax + eax + 0x5abc5a]
inc word [ebx + edx*2 + 0x8192]
jmp 0x4c0ceb
mov esi, dword [ebp - 0x30]
movzx edx, byte [ebx + esi + 0x90]
jmp 0x4c0e0f
cmp dword [ebp - 0x2c], 0
je 0x4c0cfb
mov eax, dword [ebx + 0x4c]
dec eax
cmp dword [ebp - 0x2c], 2
jbe 0x4c0b8d
cmp eax, 0x7fff
ja 0x4c0b8d
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebx + 0x28]
mov edi, dword [ebp - 0x2c]
add dword [ebx + 0x3c], edi
lea ecx, [esi - 3]
mov byte [edx], cl
mov edx, dword [ebx + 0x28]
mov ecx, eax
shr ecx, 8
mov byte [edx + 1], al
mov edx, dword [ebx + 0x28]
mov byte [edx + 2], cl
mov esi, dword [ebx + 0x2c]
add dword [ebx + 0x28], 3
mov dl, byte [esi]
shr dl, 1
or edx, 0xffffff80
mov byte [esi], dl
mov edx, dword [ebx + 0x38]
dec edx
je 0x4c0ca2
mov dword [ebx + 0x38], edx
jmp 0x4c0cb5
mov edx, dword [ebx + 0x28]
mov dword [ebx + 0x38], 8
lea esi, [edx + 1]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], esi
cmp eax, 0x1ff
ja 0x4c0cc5
movzx eax, byte [eax + 0x5ac0c0]
jmp 0x4c0ccc
movzx eax, byte [ecx + 0x5abae0]
inc word [ebx + eax*2 + 0x83d2]
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + eax + 0x5abc5a]
inc word [ebx + eax*2 + 0x8192]
mov eax, dword [ebx + 0x50]
dec eax
xor esi, esi
mov dword [ebx + 0x50], esi
jmp 0x4c0e20
cmp dword [ebp - 0x20], 0
jne 0x4c0d49
mov eax, dword [ebp - 0x30]
mov edx, dword [ebx + 0x28]
movzx eax, byte [ebx + eax + 0x90]
lea ecx, [edx + 1]
inc dword [ebx + 0x3c]
mov dword [ebx + 0x28], ecx
mov byte [edx], al
mov edx, dword [ebx + 0x2c]
shr byte [edx], 1
mov edx, dword [ebx + 0x38]
dec edx
je 0x4c0d24
mov dword [ebx + 0x38], edx
jmp 0x4c0d37
mov edx, dword [ebx + 0x28]
mov dword [ebx + 0x38], 8
lea ecx, [edx + 1]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], ecx
inc word [ebx + eax*2 + 0x8192]
mov eax, 1
jmp 0x4c0e20
mov edx, dword [ebp - 0x40]
and edx, 0x10000
or edx, dword [ebx + 0x14]
jne 0x4c0d61
cmp eax, 0x7f
ja 0x4c0d6a
jmp 0x4c0e04
cmp eax, 2
jbe 0x4c0b8d
cmp dword [ebp - 0x20], 0x8000
ja 0x4c0b8d
mov edx, dword [ebx + 0x28]
lea ecx, [eax - 3]
add dword [ebx + 0x3c], eax
mov byte [edx], cl
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx + 0x28]
dec ecx
mov dword [ebp - 0x1c], ecx
mov cl, byte [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov byte [edx + 1], cl
mov edx, dword [ebx + 0x28]
shr esi, 8
mov ecx, esi
mov byte [edx + 2], cl
mov edi, dword [ebx + 0x2c]
add dword [ebx + 0x28], 3
mov dl, byte [edi]
shr dl, 1
or edx, 0xffffff80
mov byte [edi], dl
mov edx, dword [ebx + 0x38]
dec edx
je 0x4c0dbb
mov dword [ebx + 0x38], edx
jmp 0x4c0dce
mov edx, dword [ebx + 0x28]
mov dword [ebx + 0x38], 8
lea edi, [edx + 1]
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x28], edi
cmp dword [ebp - 0x1c], 0x1ff
ja 0x4c0de3
mov edi, dword [ebp - 0x1c]
movzx edx, byte [edi + 0x5ac0c0]
jmp 0x4c0dea
movzx edx, byte [esi + 0x5abae0]
inc word [ebx + edx*2 + 0x83d2]
movzx edx, word [eax + eax + 0x5abc5a]
inc word [ebx + edx*2 + 0x8192]
jmp 0x4c0e20
mov edi, dword [ebp - 0x30]
movzx edx, byte [ebx + edi + 0x90]
mov esi, dword [ebp - 0x20]
mov dword [ebx + 0x54], edx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x4c], esi
jmp 0x4c0d3f
mov edx, dword [ebx + 0x20]
add dword [ebx + 0x1c], eax
cmp edx, eax
jae 0x4c0644
mov dword [esp + 8], 0x704
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.d__m_lookahead_size___len_to_move
jmp 0x4c04e6
lea ecx, [ebx + 0x9272]
sub eax, ecx
imul eax, eax, 0x73
shr eax, 7
cmp eax, edx
jae 0x4c0669
test byte [ebx + 0xa], 8
je 0x4c06a2
jmp 0x4c0669
cmp dword [ebp + 0x1c], 0
je 0x4c0e7f
cmp dword [ebx + 0x20], 0
jne 0x4c06ac
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x88], eax
test byte [ebx + 9], 0x30
je 0x4c0ebf
cmp dword [ebp + 0xc], 0
je 0x4c0ebf
mov eax, dword [ebx + 0x84]
sub eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call fcn.004bf97c
mov dword [ebx + 0x18], eax
cmp dword [ebp + 0x1c], 0
je 0x4c0f21
cmp dword [ebx + 0x20], 0
jne 0x4c0f21
cmp dword [ebx + 0x88], 0
jne 0x4c0f21
cmp dword [ebx + 0x5c], 0
jne 0x4c0f21
mov edx, dword [ebp + 0x1c]
mov eax, ebx
call fcn.004c14b0
test eax, eax
jns 0x4c0ef0
mov eax, dword [ebx + 0x6c]
jmp 0x4c0fd7
mov eax, dword [ebp - 0x4c]
cmp dword [ebp + 0x1c], 3
mov dword [ebx + 0x60], eax
jne 0x4c0f21
lea edx, [ebx + 0x29272]
xor eax, eax
mov ecx, 0x4000
mov edi, edx
lea edx, [ebx + 0x19272]
rep stosd dword es:[edi], eax
mov ecx, 0x4000
mov edi, edx
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [ebx + 0x24], ecx
mov eax, ebx
call fcn.004c19d8
mov dword [ebx + 0x6c], eax
jmp 0x4c0fd7
test eax, eax
je 0x4c0200
xor edx, edx
mov dword [eax], edx
jmp 0x4c0200
test edi, edi
je 0x4c0464
mov eax, 0x102
lea edx, [edi - 1]
cmp dword [ebp - 0x20], eax
cmovbe eax, dword [ebp - 0x20]
cmp edx, 0x7fff
jbe 0x4c0f7c
mov dword [esp + 8], 0x5f2
mov dword [esp + 4], str.miniz.c
mov dword [esp], str._cur_match_len___TDEFL_MIN_MATCH_LEN____cur_match_dist___1____cur_match_dist___TDEFL_LZ_DICT_SIZE_
jmp 0x4c04e6
mov edi, dword [ebp - 0x1c]
lea ecx, [eax - 3]
mov esi, dword [ebp - 0x24]
add dword [ebp - 0x1c], 3
mov byte [edi], cl
mov ecx, dword [ebp - 0x44]
dec ecx
mov word [edi + 1], cx
mov cl, byte [esi]
mov byte [ebp - 0x34], cl
shr cl, 1
or ecx, 0xffffff80
mov byte [esi], cl
cmp edx, 0x1ff
ja 0x4c0fb0
movzx edx, byte [edx + 0x5ac0c0]
jmp 0x4c0fba
shr edx, 8
movzx edx, byte [edx + 0x5abae0]
inc word [ebx + edx*2 + 0x83d2]
movzx edx, word [eax + eax + 0x5abc5a]
inc word [ebx + edx*2 + 0x8192]
jmp 0x4c0488
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret