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

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
sub esp, 0x5c
mov edi, dword [ebp + 0x20]
mov eax, dword [eax + 0x1c]
mov esi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x28]
mov dword [esp + 0x1c], edi
mov edi, dword [ebp + 0x3c]
mov dword [esp + 0x44], eax
and eax, 0x7fff
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], eax
mov esi, dword [ebp + 0x38]
lea eax, [ebp + 0x1926a]
mov dword [esp + 0x30], edi
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, ebp
mov ebp, ebx
mov dword [esp + 0x24], esi
mov ebx, eax
mov dword [esp + 0x28], edi
mov eax, dword [ebx + 0x88]
test eax, eax
jne 0x4141b0
mov ecx, dword [ebx + 0x80]
test ecx, ecx
je 0x414495
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x414495
mov eax, 0x8000
sub eax, dword [esp + 0x1c]
cmp dword [esp + 0x3c], eax
jbe 0x413eaa
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x1c], 3
jbe 0x41400e
lea eax, [ebx + 0x90]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
jmp 0x413edb
cmp dword [esp + 0x1c], 3
jbe 0x414006
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
and ecx, 0xffffff
mov eax, ecx
shr eax, 0x11
xor eax, ecx
and eax, 0xfff
lea edx, [ebx + eax*2]
movzx eax, word [edx + 0x29272]
mov word [edx + 0x29272], di
mov edx, edi
sub edx, eax
mov word [esp + 0x44], dx
movzx edx, dx
cmp esi, edx
mov dword [esp + 0x3c], edx
jb 0x413f3d
and eax, 0x7fff
add eax, dword [esp + 0x34]
mov edx, dword [eax]
and edx, 0xffffff
cmp ecx, edx
je 0x4142b4
mov eax, dword [esp + 0x28]
mov byte [ebp], cl
add ebp, 1
shr byte [eax], 1
movzx eax, byte [esp + 0x2c]
add word [ebx + eax*2 + 0x8192], 1
mov eax, 1
sub dword [esp + 0x24], 1
jne 0x413f72
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], 8
add ebp, 1
add esi, eax
add dword [esp + 0x30], eax
add edi, eax
cmp esi, 0x8000
jbe 0x413f87
mov esi, 0x8000
mov edx, dword [esp + 0x20]
add edx, eax
and edx, 0x7fff
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
ja 0x414612
sub dword [esp + 0x1c], eax
cmp ebp, dword [esp + 0x40]
jbe 0x413ed0
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x24], esi
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x38], eax
mov eax, ebx
call sym._tdefl_flush_block.constprop.11
test eax, eax
jne 0x41450b
mov eax, dword [ebx + 0x3c]
cmp dword [esp + 0x1c], 3
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x24], eax
ja 0x413edb
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x413e6f
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
add dword [esp + 0x30], 1
movzx edx, byte [ebx + eax + 0x90]
lea eax, [ebp + 1]
mov byte [ebp], dl
shr byte [esi], 1
sub dword [esp + 0x24], 1
jne 0x41404d
mov dword [esp + 0x28], eax
lea eax, [ebp + 2]
mov dword [esp + 0x24], 8
add dword [esp + 0x3c], 1
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
add word [ebx + edx*2 + 0x8192], 1
add esi, 1
cmp edi, 0x8000
jbe 0x414076
mov dword [esp + 0x3c], 0x8000
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
add edx, 1
sub edi, 1
and edx, 0x7fff
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x20], edx
ja 0x414569
test edi, edi
je 0x4145ff
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
lea edx, [eax + 1]
add dword [esp + 0x30], 1
movzx ecx, byte [ebx + esi + 0x90]
mov byte [eax], cl
shr byte [edi], 1
sub dword [esp + 0x24], 1
jne 0x4140d2
mov dword [esp + 0x28], edx
lea edx, [eax + 2]
mov dword [esp + 0x24], 8
movzx eax, cl
add dword [esp + 0x3c], 1
add word [ebx + eax*2 + 0x8192], 1
mov eax, dword [esp + 0x44]
lea esi, [eax + 2]
mov eax, dword [esp + 0x3c]
cmp eax, 0x8000
jbe 0x4140fd
mov dword [esp + 0x3c], 0x8000
mov eax, dword [esp + 0x20]
sub dword [esp + 0x1c], 2
add eax, 1
and eax, 0x7fff
cmp dword [esp + 0x40], edx
mov dword [esp + 0x20], eax
jb 0x414518
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4145f4
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
lea ebp, [edx + 1]
add dword [esp + 0x30], 1
movzx eax, byte [ebx + eax + 0x90]
mov byte [edx], al
shr byte [esi], 1
sub dword [esp + 0x24], 1
jne 0x41415a
mov dword [esp + 0x28], ebp
lea ebp, [edx + 2]
mov dword [esp + 0x24], 8
add dword [esp + 0x3c], 1
add word [ebx + eax*2 + 0x8192], 1
mov eax, dword [esp + 0x3c]
add dword [esp + 0x44], 3
cmp eax, 0x8000
jbe 0x414180
mov dword [esp + 0x3c], 0x8000
mov eax, dword [esp + 0x20]
add eax, 1
and eax, 0x7fff
cmp dword [esp + 0x40], ebp
mov dword [esp + 0x20], eax
jb 0x4144cf
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x413e7d
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
add edx, edi
and edx, 0x7fff
mov ecx, edx
mov edx, 0x1000
sub edx, edi
cmp edx, eax
mov edi, edx
jbe 0x4141d1
mov edi, eax
sub eax, edi
add dword [esp + 0x1c], edi
test edi, edi
mov dword [ebx + 0x88], eax
je 0x414466
lea eax, [ebx + 0x90]
mov dword [esp + 0x48], ebp
mov esi, dword [ebx + 0x84]
mov edx, edi
mov ebp, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], eax
jmp 0x414229
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x84]
mov eax, dword [esp + 0x2c]
add ebp, ebx
add esi, ebx
and ebp, 0x7fff
sub edx, ebx
mov dword [eax + 0x84], esi
je 0x414460
mov ebx, 0x8000
sub ebx, ebp
cmp ebx, edx
jbe 0x414236
mov ebx, edx
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0x34], edx
add eax, ebp
mov dword [esp], eax
call sym._memcpy
cmp ebp, 0x100
mov edx, dword [esp + 0x34]
ja 0x414203
mov eax, dword [esp + 0x38]
lea ecx, [eax + ebp + 0x8000]
mov eax, 0x101
sub eax, ebp
cmp eax, ebx
mov dword [esp + 0x34], eax
jbe 0x41427a
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
cmp eax, 4
mov esi, dword [edi + 0x84]
jae 0x414430
test eax, eax
je 0x41420d
movzx eax, byte [esi]
mov byte [ecx], al
test byte [esp + 0x34], 2
jne 0x4145d7
mov esi, dword [edi + 0x84]
jmp 0x41420d
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], edi
add edx, 0x100
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x48], ecx
movzx ecx, word [eax + 2]
cmp word [edx + 2], cx
jne 0x4143c0
movzx ecx, word [eax + 4]
cmp word [edx + 4], cx
jne 0x414404
movzx ecx, word [eax + 6]
cmp word [edx + 6], cx
jne 0x414414
add eax, 8
add edx, 8
movzx ecx, word [eax]
cmp word [edx], cx
jne 0x414424
cmp edi, edx
jne 0x4142d2
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
test eax, eax
je 0x413f3d
mov eax, 0x102
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jbe 0x414335
mov eax, ecx
movzx ecx, word [esp + 0x44]
sub cx, 1
js 0x41462e
mov ecx, dword [esp + 0x3c]
lea edx, [eax - 3]
add ebp, 3
mov byte [ebp - 3], dl
sub ecx, 1
mov word [ebp - 2], cx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx]
shr dl, 1
or edx, 0xffffff80
mov byte [ecx], dl
mov ecx, dword [esp + 0x2c]
mov edx, ecx
shr ecx, 8
and edx, 0x1ff
cmp dword [esp + 0x2c], 0x1ff
movzx edx, byte [edx + 0x43a7e0]
mov byte [esp + 0x38], dl
movzx edx, byte [ecx + 0x43a560]
ja 0x41439a
movzx edx, byte [esp + 0x38]
add word [ebx + edx*2 + 0x83d2], 1
movzx edx, word [eax + eax + 0x43aada]
add word [ebx + edx*2 + 0x8192], 1
jmp 0x413f5c
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add edx, 2
add eax, 2
movzx eax, byte [eax]
cmp byte [edx], al
sete al
sub edx, dword [esp + 0x38]
movzx eax, al
add eax, edx
cmp eax, 2
jbe 0x413f3d
cmp eax, 3
jne 0x41432b
cmp dword [esp + 0x3c], 0x1fff
ja 0x413f3d
jmp 0x41432b
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add edx, 4
add eax, 4
jmp 0x4143ce
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add edx, 6
add eax, 6
jmp 0x4143ce
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
jmp 0x4143ce
mov edi, dword [esi]
mov dword [ecx], edi
mov eax, dword [esp + 0x34]
mov edi, dword [esi + eax - 4]
mov dword [ecx + eax - 4], edi
lea edi, [ecx + 4]
and edi, 0xfffffffc
sub ecx, edi
sub esi, ecx
add ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x414203
mov ebp, dword [esp + 0x48]
mov ebx, eax
mov eax, 0x8000
sub eax, dword [esp + 0x1c]
mov edx, dword [ebx + 0x80]
cmp dword [esp + 0x3c], eax
jbe 0x41447f
mov dword [esp + 0x3c], eax
test edx, edx
jne 0x413eaa
cmp dword [esp + 0x1c], 0xfff
ja 0x413eaa
mov eax, ebx
mov ebx, ebp
mov ebp, eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x38], eax
mov eax, 1
jmp 0x414510
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x38], eax
mov eax, ebx
call sym._tdefl_flush_block.constprop.11
test eax, eax
je 0x4145ba
not eax
shr eax, 0x1f
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x38], eax
mov eax, ebx
call sym._tdefl_flush_block.constprop.11
test eax, eax
jne 0x41450b
mov eax, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x24], eax
jmp 0x41411c
mov ecx, dword [esp + 0x3c]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x3c], ecx
mov dword [ebx + 0x38], eax
mov eax, ebx
call sym._tdefl_flush_block.constprop.11
test eax, eax
jne 0x41450b
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x24], ecx
jmp 0x414098
mov eax, dword [ebx + 0x3c]
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x24], eax
jmp 0x41419a
mov eax, dword [esp + 0x34]
movzx esi, word [esi + eax - 2]
mov word [ecx + eax - 2], si
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x84]
jmp 0x41420d
mov ebp, edx
mov dword [esp + 0x44], esi
jmp 0x413e6f
mov ebp, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], esi
jmp 0x413e6f
mov dword [esp + 8], 0x613
mov dword [esp + 4], str.miniz.c
mov dword [esp], str.lookahead_size___cur_match_len
call sym.__assert
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_
call sym.__assert
lea esi, [esi]