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

Disassembly:
push ebp
push edi
push esi
push ebx
mov esi, eax
mov ebp, esi
sub esp, 0x6c
mov eax, dword [eax + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x80]
mov dword [esp + 0x4c], eax
lea eax, [esi + 0x90]
mov dword [esp + 0x40], eax
lea eax, [esi + 0x1926a]
mov dword [esp + 0x48], eax
lea esi, [esi]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4136c0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x413d6c
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x413d6c
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x2c], eax
add eax, edi
cmp eax, 1
jbe 0x413d8d
mov ebx, dword [ebp + 0x1c]
add ebx, edi
lea ecx, [ebx - 2]
mov edx, ebx
sub ebx, 1
and ebx, 0x7fff
and edx, 0x7fff
mov eax, ecx
movzx ebx, byte [ebp + ebx + 0x90]
and eax, 0x7fff
movzx eax, byte [ebp + eax + 0x90]
shl eax, 5
xor eax, ebx
mov ebx, 0x102
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
sub ebx, edi
cmp ebx, eax
jbe 0x4133cf
mov ebx, eax
mov esi, dword [esp + 0x34]
add edi, ebx
sub dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov dword [ebp + 0x20], edi
lea eax, [esi + ebx]
cmp esi, eax
mov dword [esp + 0x18], eax
je 0x413469
mov eax, dword [esp + 0x14]
mov ebx, esi
mov dword [esp + 0x14], ecx
add ebx, 1
movzx esi, byte [ebx - 1]
cmp edx, 0x100
mov ecx, esi
mov byte [ebp + edx + 0x90], cl
ja 0x413414
mov byte [ebp + edx + 0x8090], cl
mov ecx, esi
shl eax, 5
mov edi, dword [esp + 0x14]
movzx esi, cl
add edx, 1
xor eax, esi
and edx, 0x7fff
and eax, 0x7fff
and edi, 0x7fff
lea esi, [ebp + eax*2]
movzx ecx, word [esi + 0x29272]
mov word [ebp + edi*2 + 0x19272], cx
mov edi, dword [esp + 0x14]
mov word [esi + 0x29272], di
add edi, 1
cmp dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
jne 0x4133f5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, 0x8000
sub eax, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x2c]
cmp edi, eax
jbe 0x41347e
mov edi, eax
cmp dword [esp + 0x1c], 0x101
mov dword [ebp + 0x24], edi
ja 0x413497
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x413d6c
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x50]
test eax, eax
mov dword [esp + 0x28], eax
mov esi, eax
jne 0x4134b0
mov esi, 2
mov eax, dword [esp + 0x14]
and eax, 0x7fff
mov edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov ebx, eax
mov dword [esp + 0x3c], eax
and ebx, 0x90000
mov dword [esp + 0x18], ebx
je 0x4137d0
test edi, edi
mov dword [esp + 0x18], 0
je 0x413551
mov ebx, eax
and ebx, 0x80000
mov dword [esp + 0x18], ebx
jne 0x413c50
mov ebx, dword [esp + 0x1c]
mov eax, edx
sub eax, 1
and eax, 0x7fff
test ebx, ebx
movzx eax, byte [ebp + eax + 0x90]
je 0x413daa
xor esi, esi
cmp al, byte [ebp + edx + 0x90]
jne 0x413551
lea edx, [ebp + edx]
mov ecx, ebx
jmp 0x413539
cmp al, byte [esi + edx + 0x90]
jne 0x413540
add esi, 1
cmp esi, ecx
jne 0x413530
cmp esi, 2
jbe 0x413d65
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x2c], edi
je 0x413572
test dword [esp + 0x3c], 0x20000
je 0x413a00
cmp esi, 5
ja 0x413a00
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4139a0
mov eax, dword [ebp + 0x4c]
sub eax, 1
cmp eax, 0x7fff
ja 0x413df8
mov edi, dword [esp + 0x28]
cmp edi, 2
jbe 0x413df8
mov edx, dword [ebp + 0x28]
lea ecx, [edi - 3]
add dword [ebp + 0x3c], edi
mov ebx, eax
shr ebx, 8
mov byte [edx], cl
mov edx, dword [ebp + 0x28]
mov byte [edx + 1], al
mov edx, dword [ebp + 0x28]
mov byte [edx + 2], bl
mov ecx, dword [ebp + 0x2c]
add dword [ebp + 0x28], 3
movzx edx, byte [ecx]
shr dl, 1
or edx, 0xffffff80
mov byte [ecx], dl
mov edx, dword [ebp + 0x38]
sub edx, 1
jne 0x413c60
mov edx, dword [ebp + 0x28]
cmp eax, 0x1ff
mov dword [ebp + 0x38], 8
lea ecx, [edx + 1]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], ecx
ja 0x413c6e
movzx eax, byte [eax + 0x43a7e0]
add word [ebp + eax*2 + 0x83d2], 1
mov eax, dword [esp + 0x28]
movzx eax, word [eax + eax + 0x43aada]
add word [ebp + eax*2 + 0x8192], 1
mov eax, dword [ebp + 0x50]
mov dword [ebp + 0x50], 0
lea esi, [eax - 1]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
add eax, esi
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x20]
cmp esi, eax
ja 0x413dc0
sub eax, esi
add dword [ebp + 0x24], esi
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x24]
cmp eax, 0x8000
jbe 0x413653
mov eax, 0x8000
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x28]
cmp eax, dword [esp + 0x48]
ja 0x413690
mov edx, dword [ebp + 0x3c]
cmp edx, 0x7c00
jbe 0x413350
lea ecx, [ebp + 0x9272]
sub eax, ecx
imul eax, eax, 0x73
shr eax, 7
cmp edx, eax
jbe 0x413690
test byte [ebp + 0xa], 8
je 0x413350
lea esi, [esi]
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x88], eax
mov eax, ebp
call sym._tdefl_flush_block.constprop.11
test eax, eax
je 0x413350
add esp, 0x6c
not eax
pop ebx
shr eax, 0x1f
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
add eax, edi
cmp eax, 1
ja 0x413385
cmp edi, 0x101
ja 0x413d96
mov eax, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x34]
mov ecx, eax
lea esi, [edi + eax - 2]
mov dword [esp + 0x14], eax
add eax, 0x100
sub edi, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
add eax, 3
sub eax, ecx
mov dword [esp + 0x24], eax
jmp 0x413721
add esi, 1
cmp dword [esp + 0x28], esi
je 0x413c83
add ebx, 1
movzx eax, byte [ebx - 1]
lea edx, [esi + 2]
sub edi, 1
and edx, 0x7fff
cmp edx, 0x100
mov byte [ebp + edx + 0x90], al
ja 0x41374a
mov byte [ebp + edx + 0x8090], al
mov ecx, dword [esp + 0x18]
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov dword [ebp + 0x20], ecx
mov ecx, dword [esp + 0x24]
lea edx, [ecx + esi]
cmp edx, 2
jbe 0x4137b7
mov edx, esi
and edx, 0x7fff
mov ecx, edx
lea edx, [esi + 1]
mov dword [esp + 0x20], ecx
movzx ecx, byte [ebp + ecx + 0x90]
and edx, 0x7fff
movzx edx, byte [ebp + edx + 0x90]
shl ecx, 0xa
xor eax, ecx
mov ecx, dword [esp + 0x20]
shl edx, 5
xor eax, edx
and eax, 0x7fff
lea eax, [ebp + eax*2]
movzx edx, word [eax + 0x29272]
mov word [ebp + ecx*2 + 0x19272], dx
mov word [eax + 0x29272], si
test edi, edi
jne 0x413714
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ebx
jmp 0x413469
cmp dword [esp + 0x1c], 0x102
ja 0x413ddc
cmp esi, dword [esp + 0x1c]
jae 0x413551
xor eax, eax
cmp esi, 0x1f
mov ecx, edx
seta al
mov dword [esp + 0x24], esi
mov eax, dword [ebp + eax*4 + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
add eax, edx
mov ebx, eax
mov dword [esp + 0x50], eax
mov eax, edx
add eax, 0x8f
add ebx, 0x100
mov edx, eax
mov dword [esp + 0x5c], eax
lea eax, [ebp + esi]
movzx eax, word [eax + edx]
mov word [esp + 0x44], ax
movzx eax, word [ebx - 0x100]
mov dword [esp + 0x54], ebx
mov word [esp + 0x46], ax
mov eax, ecx
movzx ecx, word [esp + 0x14]
mov word [esp + 0x32], cx
lea esi, [esi]
lea edi, [edi]
sub dword [esp + 0x38], 1
je 0x413af0
movzx eax, word [ebp + eax*2 + 0x19272]
test ax, ax
je 0x413af0
movzx ebx, word [esp + 0x14]
sub ebx, eax
movzx ebx, bx
cmp ebx, edi
ja 0x413af0
mov esi, dword [esp + 0x24]
and eax, 0x7fff
lea ecx, [ebp + eax]
lea edx, [esi + 0x8f]
movzx esi, word [esp + 0x44]
cmp word [ecx + edx], si
je 0x413904
movzx eax, word [ebp + eax*2 + 0x19272]
test ax, ax
je 0x413af0
movzx ebx, word [esp + 0x32]
sub ebx, eax
movzx ebx, bx
cmp ebx, edi
ja 0x413af0
and eax, 0x7fff
lea ecx, [ebp + eax]
cmp si, word [ecx + edx]
je 0x413904
movzx eax, word [ebp + eax*2 + 0x19272]
test ax, ax
je 0x413af0
movzx ebx, word [esp + 0x32]
sub ebx, eax
movzx ebx, bx
cmp ebx, edi
ja 0x413af0
and eax, 0x7fff
lea ecx, [ebp + eax]
cmp si, word [ecx + edx]
jne 0x413850
test ebx, ebx
je 0x413af0
mov edx, dword [esp + 0x40]
lea ecx, [edx + eax]
movzx edx, word [esp + 0x46]
cmp dx, word [ecx]
jne 0x413850
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
lea esi, [esi]
movzx esi, word [ecx + 2]
cmp word [edx + 2], si
jne 0x413cec
movzx esi, word [ecx + 4]
cmp word [edx + 4], si
jne 0x413d47
movzx esi, word [ecx + 6]
cmp word [edx + 6], si
jne 0x413d53
add ecx, 8
add edx, 8
movzx esi, word [ecx]
cmp word [edx], si
jne 0x413d5f
cmp eax, edx
jne 0x413930
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], 0x1fff
jbe 0x413551
cmp esi, 3
jne 0x413551
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x41357e
nop
lea esi, [esi]
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0x28]
movzx eax, byte [ebp + eax + 0x90]
lea ecx, [edx + 1]
add dword [ebp + 0x3c], 1
mov dword [ebp + 0x28], ecx
mov byte [edx], al
mov edx, dword [ebp + 0x2c]
shr byte [edx], 1
mov edx, dword [ebp + 0x38]
sub edx, 1
jne 0x413bf0
mov edx, dword [ebp + 0x28]
mov dword [ebp + 0x38], 8
lea ecx, [edx + 1]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], ecx
add word [ebp + eax*2 + 0x8192], 1
mov esi, 1
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x41362c
mov eax, dword [esp + 0x28]
test eax, eax
je 0x413b00
cmp eax, esi
jae 0x41357e
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x54]
add dword [ebp + 0x3c], 1
lea ebx, [ecx + 1]
movzx edx, al
mov dword [ebp + 0x28], ebx
mov byte [ecx], al
mov eax, dword [ebp + 0x2c]
shr byte [eax], 1
mov eax, dword [ebp + 0x38]
sub eax, 1
je 0x413c00
mov dword [ebp + 0x38], eax
add word [ebp + edx*2 + 0x8192], 1
cmp esi, 0x7f
jbe 0x413c25
mov edx, dword [esp + 0x18]
sub edx, 1
cmp edx, 0x7fff
ja 0x413df8
mov eax, dword [ebp + 0x28]
lea ecx, [esi - 3]
add dword [ebp + 0x3c], esi
mov ebx, edx
shr ebx, 8
mov byte [eax], cl
mov eax, dword [ebp + 0x28]
mov byte [eax + 1], dl
mov eax, dword [ebp + 0x28]
mov byte [eax + 2], bl
mov ecx, dword [ebp + 0x2c]
add dword [ebp + 0x28], 3
movzx eax, byte [ecx]
shr al, 1
or eax, 0xffffff80
mov byte [ecx], al
mov eax, dword [ebp + 0x38]
sub eax, 1
jne 0x413cc8
mov eax, dword [ebp + 0x28]
cmp edx, 0x1ff
mov dword [ebp + 0x38], 8
lea ecx, [eax + 1]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ecx
ja 0x413cd7
movzx eax, byte [edx + 0x43a7e0]
add word [ebp + eax*2 + 0x83d2], 1
movzx eax, word [esi + esi + 0x43aada]
add word [ebp + eax*2 + 0x8192], 1
mov dword [ebp + 0x50], 0
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x41362c
mov esi, dword [esp + 0x24]
jmp 0x413978
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4139a0
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x413b50
test dword [esp + 0x3c], 0x10000
jne 0x413b50
cmp esi, 0x7f
ja 0x413b59
mov eax, dword [esp + 0x2c]
movzx eax, byte [ebp + eax + 0x90]
mov dword [ebp + 0x50], esi
mov esi, 1
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x4c], eax
mov eax, dword [esp + 0x14]
jmp 0x41362c
cmp esi, 2
jbe 0x413df8
mov edi, dword [esp + 0x18]
cmp edi, 0x8000
ja 0x413df8
mov eax, dword [ebp + 0x28]
lea edx, [esi - 3]
add dword [ebp + 0x3c], esi
mov byte [eax], dl
mov edx, edi
mov eax, dword [ebp + 0x28]
sub edx, 1
mov ecx, edx
shr ecx, 8
mov byte [eax + 1], dl
mov eax, dword [ebp + 0x28]
mov byte [eax + 2], cl
mov ebx, dword [ebp + 0x2c]
add dword [ebp + 0x28], 3
movzx eax, byte [ebx]
shr al, 1
or eax, 0xffffff80
mov byte [ebx], al
mov eax, dword [ebp + 0x38]
sub eax, 1
je 0x413cb0
mov dword [ebp + 0x38], eax
mov eax, edx
movzx ecx, byte [ecx + 0x43a560]
and eax, 0x1ff
cmp edx, 0x1ff
movzx eax, byte [eax + 0x43a7e0]
ja 0x413bca
movzx ecx, al
movzx eax, word [esi + esi + 0x43aada]
add word [ebp + ecx*2 + 0x83d2], 1
add word [ebp + eax*2 + 0x8192], 1
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x41362c
mov dword [ebp + 0x38], edx
jmp 0x4139df
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x38], 8
lea ecx, [eax + 1]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ecx
add word [ebp + edx*2 + 0x8192], 1
cmp esi, 0x7f
ja 0x413a4f
mov eax, dword [esp + 0x2c]
movzx eax, byte [ebp + eax + 0x90]
mov dword [ebp + 0x50], esi
mov esi, 1
mov dword [ebp + 0x54], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x14], eax
jmp 0x41362c
mov dword [esp + 0x18], 0
jmp 0x413551
cmp eax, 0x1ff
mov dword [ebp + 0x38], edx
jbe 0x4135f3
movzx eax, byte [ebx + 0x43a560]
add word [ebp + eax*2 + 0x83d2], 1
jmp 0x413603
mov dword [esp + 0x20], edi
mov eax, 0x8000
sub eax, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x2c]
cmp edi, eax
jbe 0x413c9c
mov edi, eax
mov dword [ebp + 0x24], edi
mov dword [esp + 0x34], ebx
jmp 0x41349e
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x38], 8
lea ebx, [eax + 1]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x28], ebx
jmp 0x413baa
cmp edx, 0x1ff
mov dword [ebp + 0x38], eax
jbe 0x413aba
movzx eax, byte [ebx + 0x43a560]
add word [ebp + eax*2 + 0x83d2], 1
jmp 0x413aca
mov eax, dword [esp + 0x58]
add edx, 2
add ecx, 2
movzx ecx, byte [ecx]
cmp byte [edx], cl
sete cl
sub edx, dword [esp + 0x50]
movzx ecx, cl
add edx, ecx
cmp dword [esp + 0x24], edx
jae 0x413850
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
cmp edx, ecx
jbe 0x413d23
mov dword [esp + 0x24], ecx
mov edx, ecx
mov esi, dword [esp + 0x1c]
cmp edx, esi
je 0x413db5
mov ecx, dword [esp + 0x5c]
add edx, ebp
mov dword [esp + 0x18], ebx
movzx ecx, word [edx + ecx]
mov word [esp + 0x44], cx
jmp 0x413850
mov eax, dword [esp + 0x58]
add edx, 4
add ecx, 4
jmp 0x413cf6
mov eax, dword [esp + 0x58]
add edx, 6
add ecx, 6
jmp 0x413cf6
mov eax, dword [esp + 0x58]
jmp 0x413cf6
xor esi, esi
jmp 0x413551
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x88], eax
add esp, 0x6c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x1c], edi
jmp 0x413469
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
jmp 0x413c87
xor esi, esi
mov dword [esp + 0x18], esi
jmp 0x413551
mov esi, edx
mov dword [esp + 0x18], ebx
jmp 0x413978
mov dword [esp + 8], 0x704
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.d__m_lookahead_size___len_to_move
call sym.__assert
mov dword [esp + 8], 0x555
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.max_match_len___TDEFL_MAX_MATCH_LEN
call sym.__assert
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_
call sym.__assert
lea esi, [esi]
lea edi, [edi]