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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
mov edi, dword [ecx + 0x1c]
lea eax, [eax + edx - 5]
mov dword [esp], edx
mov ebx, dword [edi + 0x34]
mov dword [esp + 8], esi
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x38], ebx
lea ecx, [eax + esi - 0x101]
mov edx, eax
mov eax, 0xffffffff
mov dword [esp + 0x44], ecx
mov cl, byte [edi + 0x58]
sub edx, dword [esp + 0x94]
shl eax, cl
mov cl, byte [edi + 0x5c]
add edx, esi
mov esi, edi
mov edi, dword [edi + 0x38]
not eax
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x78], eax
mov eax, 0xffffffff
shl eax, cl
mov ecx, ebx
mov dword [esp + 0x24], edi
not eax
and ecx, 0xffffffe0
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x74], eax
mov eax, edx
mov dword [esp + 0x3c], ecx
sub eax, ebx
mov dword [esp + 0x64], eax
mov eax, ebx
sub eax, ecx
mov ecx, edx
mov dword [esp + 0x54], eax
mov eax, ebx
sub eax, edx
lea eax, [eax + edi + 0x10]
mov dword [esp + 0x5c], eax
lea eax, [ebx + ebp]
mov dword [esp + 0x68], eax
sub eax, edx
lea eax, [eax + edi + 0x10]
mov dword [esp + 0x58], eax
mov eax, ebp
sub eax, edx
mov edx, esi
lea eax, [eax + edi + 0x10]
mov ecx, dword [edx + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x30]
mov esi, dword [esi + 0x3c]
mov dword [esp + 0x4c], ecx
mov ecx, edx
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x40]
mov edx, dword [edx + 0x54]
mov dword [esp + 0x48], edx
lea edx, [edi + ebp]
mov ebp, ecx
lea ecx, [edi + ebx]
mov ebx, dword [esp]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x34], edx
add ecx, edi
mov dword [esp + 0x50], ecx
cmp eax, 0xe
ja 0x4e6e90
movzx edx, byte [ebx]
mov ecx, eax
add eax, 0x10
shl edx, cl
add cl, 8
add edx, esi
movzx esi, byte [ebx + 1]
add ebx, 2
mov dword [esp], ebx
shl esi, cl
add esi, edx
jmp 0x4e6e93
mov dword [esp], ebx
mov edi, esi
mov ebx, dword [esp + 0x4c]
and edi, dword [esp + 0x78]
mov dl, byte [ebx + edi*4]
movzx ecx, byte [ebx + edi*4 + 1]
movzx ebx, word [ebx + edi*4 + 2]
shr esi, cl
sub eax, ecx
test dl, dl
je 0x4e6efd
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, dl
test dl, 0x10
jne 0x4e6f30
test dl, 0x40
jne 0x4e75ab
movzx edi, bx
mov ebx, 0xffffffff
mov ecx, edx
shl ebx, cl
not ebx
and ebx, esi
add ebx, edi
mov edi, dword [esp + 0x4c]
movzx edx, byte [edi + ebx*4]
movzx ecx, byte [edi + ebx*4 + 1]
movzx ebx, word [edi + ebx*4 + 2]
shr esi, cl
sub eax, ecx
test dl, dl
jne 0x4e6ec0
mov edx, dword [esp + 8]
mov byte [edx], bl
mov ebx, dword [esp]
inc edx
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jae 0x4e75de
cmp ebx, dword [esp + 0x40]
jb 0x4e6e6c
jmp 0x4e75de
movzx ebx, bx
and edx, 0xf
je 0x4e6f6c
cmp eax, edx
jae 0x4e6f59
mov ecx, dword [esp]
mov dword [esp + 4], ebx
lea ebx, [eax + 8]
movzx edi, byte [ecx]
inc ecx
mov dword [esp], ecx
mov ecx, eax
mov eax, ebx
mov ebx, dword [esp + 4]
shl edi, cl
add esi, edi
mov edi, 0xffffffff
mov ecx, edx
sub eax, edx
shl edi, cl
not edi
and edi, esi
shr esi, cl
add ebx, edi
mov edi, dword [esp]
cmp eax, 0xe
mov dword [esp + 0x14], ebp
mov dword [esp + 4], ebx
ja 0x4e6f9b
movzx edx, byte [edi]
mov ecx, eax
add eax, 0x10
shl edx, cl
add cl, 8
add edx, esi
movzx esi, byte [edi + 1]
add edi, 2
mov dword [esp], edi
shl esi, cl
add esi, edx
jmp 0x4e6f9e
mov dword [esp], edi
mov edi, esi
mov ebx, dword [esp + 0x48]
and edi, dword [esp + 0x74]
movzx ecx, byte [ebx + edi*4 + 1]
movzx edx, byte [ebx + edi*4]
movzx edi, word [ebx + edi*4 + 2]
sub eax, ecx
shr esi, cl
test dl, 0x10
mov ebp, esi
mov ebx, eax
jne 0x4e7006
nop word cs:[eax + eax]
nop dword [eax]
test dl, 0x40
jne 0x4e75bc
mov esi, 0xffffffff
mov ecx, edx
movzx eax, di
shl esi, cl
not esi
and esi, ebp
add esi, eax
mov eax, dword [esp + 0x48]
movzx ecx, byte [eax + esi*4 + 1]
movzx edx, byte [eax + esi*4]
movzx edi, word [eax + esi*4 + 2]
shr ebp, cl
sub ebx, ecx
test dl, 0x10
je 0x4e6fd0
and edx, 0xf
movzx eax, di
cmp ebx, edx
mov dword [esp + 0x1c], eax
jae 0x4e7040
mov edi, dword [esp]
mov ecx, ebx
lea eax, [ebx + 8]
movzx esi, byte [edi]
shl esi, cl
add esi, ebp
cmp eax, edx
jae 0x4e7046
mov ecx, edi
movzx edi, byte [edi + 1]
add ebx, 0x10
add ecx, 2
mov dword [esp], ecx
mov ecx, eax
mov eax, ebx
shl edi, cl
add esi, edi
jmp 0x4e704a
mov eax, ebx
mov esi, ebp
jmp 0x4e704a
inc edi
mov dword [esp], edi
mov ecx, edx
sub eax, edx
mov edx, dword [esp + 8]
mov edi, 0xffffffff
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
shl edi, cl
not edi
and edi, esi
shr esi, cl
mov ecx, edx
add ebx, edi
sub ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ebx
sub ebx, ecx
jbe 0x4e70d8
cmp ebx, dword [esp + 0x70]
jbe 0x4e708a
cmp dword [ebp + 0x1bc4], 0
jne 0x4e762e
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x20], edi
test ecx, ecx
je 0x4e7185
mov edi, ebx
mov ebx, ecx
sub ecx, edi
jae 0x4e7211
mov ecx, dword [esp + 0x68]
sub ecx, edi
sub edi, ebx
mov ebx, dword [esp + 4]
add ecx, dword [esp + 0x24]
sub ebx, edi
jbe 0x4e71b0
cmp edi, 0x20
mov dword [esp + 0xc], ebx
jae 0x4e72c0
mov ebp, edx
mov edx, edi
mov edi, dword [esp + 0xc]
jmp 0x4e7450
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 4]
mov ebp, edx
sub edx, ecx
neg ecx
mov dword [esp + 0x18], ecx
add edx, 2
xor ecx, ecx
nop
movzx ebx, byte [edx + ecx - 2]
add edi, 0xfffffffd
mov byte [ebp + ecx], bl
movzx ebx, byte [edx + ecx - 1]
mov byte [ebp + ecx + 1], bl
movzx ebx, byte [edx + ecx]
mov byte [ebp + ecx + 2], bl
add ecx, 3
cmp edi, 2
ja 0x4e70f0
mov edx, ecx
sub edx, dword [esp + 4]
je 0x4e7165
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x18]
inc edx
lea edx, [edi + ebx + 2]
mov dl, byte [edx + ecx - 2]
mov byte [edi + ecx], dl
mov edx, edi
je 0x4e7253
add ebx, edx
mov edi, edx
mov dl, byte [ecx + ebx + 1]
mov ebx, dword [esp]
mov byte [edi + ecx + 1], dl
lea ecx, [edi + ecx + 2]
mov edx, ecx
mov ebp, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jb 0x4e6f15
jmp 0x4e75de
mov edx, dword [esp + 8]
mov ebx, dword [esp]
add edx, ecx
mov ebp, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jb 0x4e6f15
jmp 0x4e75de
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 4]
sub ecx, ebx
add ecx, dword [esp + 0x24]
sub edi, ebx
mov dword [esp + 0x28], edi
jbe 0x4e71b0
cmp ebx, 0x20
jae 0x4e7286
mov edi, dword [esp]
mov ebp, ebx
mov ebx, edx
jmp 0x4e73b0
mov ebp, dword [esp + 4]
mov ebx, dword [esp]
mov edi, ebp
cmp ebp, 3
jb 0x4e71e6
nop
mov ebp, edx
movzx edx, byte [ecx]
add edi, 0xfffffffd
mov byte [ebp], dl
movzx edx, byte [ecx + 1]
mov byte [ebp + 1], dl
movzx edx, byte [ecx + 2]
add ecx, 3
mov byte [ebp + 2], dl
mov edx, ebp
add edx, 3
cmp edi, 2
ja 0x4e71c0
test edi, edi
je 0x4e71fa
mov ebp, edi
mov edi, edx
mov dl, byte [ecx]
cmp ebp, 1
mov byte [edi], dl
mov edx, edi
jne 0x4e7233
inc edx
mov ebp, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jb 0x4e6f15
jmp 0x4e75de
mov ebx, dword [esp + 4]
add ecx, dword [esp + 0x24]
mov ebp, ebx
sub ebp, edi
jbe 0x4e7271
cmp edi, 0x20
mov dword [esp + 0x28], ebp
jae 0x4e72ff
mov ebx, edx
jmp 0x4e7510
mov cl, byte [ecx + 1]
mov byte [edx + 1], cl
add edx, 2
mov ebp, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jb 0x4e6f15
jmp 0x4e75de
mov ebx, dword [esp]
lea edx, [edx + ecx + 1]
mov ebp, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
mov dword [esp + 8], edx
jb 0x4e6f15
jmp 0x4e75de
mov ebp, ebx
mov ebx, dword [esp]
mov edi, ebp
cmp ebp, 3
jae 0x4e71c0
jmp 0x4e71e6
cmp edx, dword [esp + 0x34]
mov dword [esp + 0x10], ebx
jae 0x4e733a
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x18]
add edi, edx
mov edx, dword [esp + 8]
sub ebx, edx
add ebx, edi
cmp ecx, ebx
jae 0x4e733a
mov ebp, dword [esp + 0x10]
mov edi, dword [esp]
mov ebx, edx
jmp 0x4e73b0
cmp edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edi
jae 0x4e73d8
mov ebx, ebx
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 8]
sub ebx, dword [esp + 8]
add edx, edi
add ebx, edx
mov edx, dword [esp + 8]
cmp ecx, ebx
jae 0x4e73d8
mov ebp, edx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
jmp 0x4e7450
cmp edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edi
jae 0x4e749a
mov ebx, ebx
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 8]
sub ebx, dword [esp + 8]
add edx, edi
add ebx, edx
mov edx, dword [esp + 8]
cmp ecx, ebx
jae 0x4e749a
mov edi, dword [esp + 0x10]
mov ebx, edx
jmp 0x4e7510
mov ebp, dword [esp + 0x10]
mov edi, ebp
and edi, 0xffffffe0
mov dword [esp + 0xc], edi
lea ebx, [edx + edi]
mov edi, edx
sub edi, dword [esp + 0x20]
sub ebp, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
sub edi, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
add edi, dword [esp + 0x60]
mov dword [esp + 4], edi
xor edi, edi
nop word [eax + eax]
mov ebp, dword [esp + 4]
movups xmm0, xmmword [ebp + edi - 0x10]
mov ebp, dword [esp + 4]
movups xmm1, xmmword [ebp + edi]
movups xmmword [edx + edi], xmm0
movups xmmword [edx + edi + 0x10], xmm1
add edi, 0x20
cmp dword [esp + 0xc], edi
jne 0x4e7370
mov edx, dword [esp + 0xc]
mov edi, dword [esp]
mov ebp, dword [esp + 0x20]
cmp dword [esp + 0x10], edx
je 0x4e73ba
nop word cs:[eax + eax]
nop
movzx edx, byte [ecx]
inc ecx
mov byte [ebx], dl
inc ebx
dec ebp
jne 0x4e73b0
mov ecx, ebx
mov edx, ebx
mov ebx, edi
sub ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov edi, ebp
cmp ebp, 3
jae 0x4e71c0
jmp 0x4e71e6
mov ebx, edx
mov edi, dword [esp + 0x10]
mov dword [esp + 8], edx
sub ebx, dword [esp + 0x20]
and edi, 0xffffffe0
sub ebx, dword [esp + 0x1c]
lea ebp, [edx + edi]
mov edx, dword [esp + 0x10]
mov dword [esp + 4], edi
add ecx, edi
add ebx, dword [esp + 0x58]
sub edx, edi
xor edi, edi
mov dword [esp + 0x1c], ebx
nop word cs:[eax + eax]
mov ebx, dword [esp + 0x1c]
movups xmm0, xmmword [ebx + edi - 0x10]
movups xmm1, xmmword [ebx + edi]
mov ebx, dword [esp + 8]
movups xmmword [ebx + edi], xmm0
movups xmmword [ebx + edi + 0x10], xmm1
add edi, 0x20
cmp dword [esp + 4], edi
jne 0x4e7410
mov edi, dword [esp + 4]
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0xc]
je 0x4e745b
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ebx, byte [ecx]
inc ecx
mov byte [ebp], bl
inc ebp
dec edx
jne 0x4e7450
mov edx, dword [esp + 0x38]
mov ecx, edi
sub ecx, edx
jbe 0x4e747f
cmp edx, 0x20
mov dword [esp + 0x28], ecx
jae 0x4e7520
mov edi, dword [esp + 0x24]
mov ecx, edx
mov edx, ebp
jmp 0x4e7580
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp]
mov edx, ebp
mov ebp, edi
mov edi, ebp
cmp ebp, 3
jae 0x4e71c0
jmp 0x4e71e6
mov ebp, dword [esp + 0x10]
mov edi, ebp
and edi, 0xffffffe0
mov dword [esp + 0xc], edi
lea ebx, [edx + edi]
mov edi, edx
sub edi, dword [esp + 0x20]
sub ebp, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
sub edi, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
add edi, dword [esp + 0x5c]
mov dword [esp + 4], edi
xor edi, edi
nop word [eax + eax]
mov ebp, dword [esp + 4]
movups xmm0, xmmword [ebp + edi - 0x10]
mov ebp, dword [esp + 4]
movups xmm1, xmmword [ebp + edi]
movups xmmword [edx + edi], xmm0
movups xmmword [edx + edi + 0x10], xmm1
add edi, 0x20
cmp dword [esp + 0xc], edi
jne 0x4e74d0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x10], edx
je 0x4e751a
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [ecx]
inc ecx
mov byte [ebx], dl
inc ebx
dec edi
jne 0x4e7510
mov ecx, ebx
mov edx, ebx
jmp 0x4e7590
cmp ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
jae 0x4e753a
lea ecx, [ebp + edx]
cmp ebx, ecx
jae 0x4e753a
mov ecx, edx
mov edx, ebp
mov edi, ebx
jmp 0x4e7580
mov edi, dword [esp + 0x3c]
lea ecx, [ebp + edi]
mov dword [esp + 8], ecx
xor ecx, ecx
movups xmm0, xmmword [ebx + ecx]
movups xmm1, xmmword [ebx + ecx + 0x10]
movups xmmword [ebp + ecx], xmm0
movups xmmword [ebp + ecx + 0x10], xmm1
add ecx, 0x20
cmp edi, ecx
jne 0x4e7548
cmp edx, edi
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 8]
je 0x4e758e
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, edx
movzx edx, byte [edi]
inc edi
mov byte [ebx], dl
mov edx, ebx
inc edx
dec ecx
jne 0x4e7580
mov ecx, edx
sub ecx, dword [esp + 0x18]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x28]
mov edi, ebp
cmp ebp, 3
jb 0x4e71e6
jmp 0x4e71c0
mov edi, 0x3f3f
mov ecx, str.invalid_literal_length_code
test dl, 0x20
je 0x4e75c9
jmp 0x4e75d8
mov esi, ebp
mov ebp, dword [esp + 0x14]
mov ecx, str.invalid_distance_code
mov eax, ebx
mov edx, dword [esp + 0x90]
mov edi, 0x3f51
mov dword [edx + 0x18], ecx
mov ebx, dword [esp]
mov dword [ebp + 4], edi
mov ecx, eax
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 8]
and eax, 7
shr ecx, 3
sub ebx, ecx
mov ecx, dword [esp + 0x90]
sub edx, ebx
add edx, 5
mov dword [ecx], ebx
mov dword [ecx + 0xc], edi
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x44]
sub edx, edi
add edx, 0x101
mov dword [ecx + 0x10], edx
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
not edx
and edx, esi
mov dword [ebp + 0x3c], edx
mov dword [ebp + 0x40], eax
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.invalid_distance_too_far_back
jmp 0x4e75c9