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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov edi, dword [eax + 0x1c]
mov esi, dword [eax]
mov dword [esp + 0x14], esi
mov ecx, dword [eax + 4]
lea ecx, [ecx + esi - 5]
mov dword [esp + 0x3c], ecx
mov esi, dword [eax + 0x10]
movzx ecx, byte [edi + 0x58]
mov ebx, 0xffffffff
shl ebx, cl
mov ebp, esi
sub ebp, edx
movzx ecx, byte [edi + 0x5c]
mov eax, 0xffffffff
shl eax, cl
mov ecx, dword [esp + 0xb4]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
add ebp, ecx
mov dword [esp + 0x94], ebp
not ebx
mov dword [esp + 0x9c], ebx
not eax
mov dword [esp + 0x98], eax
mov ecx, edi
mov dword [esp + 0x28], edi
mov eax, dword [edi + 0x2c]
mov ebx, dword [edi + 0x34]
lea edi, [ebx + eax]
mov dword [esp + 0x8c], eax
lea ebp, [eax + edx]
mov dword [esp + 0x88], edi
lea eax, [edi + edx]
add edx, ebx
mov ecx, dword [ecx + 0x38]
lea edi, [edx + ecx]
mov dword [esp + 0x80], edi
sub edx, esi
lea edi, [eax + ecx]
mov dword [esp + 0x7c], edi
sub eax, esi
lea edi, [ecx + ebp]
mov dword [esp + 0x84], edi
sub ebp, esi
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp]
lea edi, [esi + ebp]
add edi, 0xfffffeff
mov dword [esp + 0x38], edi
add esi, ebp
mov dword [esp + 0x34], esi
lea esi, [ebx - 0x20]
mov dword [esp + 0x68], esi
shr esi, 5
inc esi
mov ebp, ebx
and ebp, 0xffffffe0
mov dword [esp + 0x20], ebx
and ebx, 0x1f
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x14]
mov edi, esi
and edi, 3
and esi, 0xfffffffc
mov dword [esp + 0x44], esi
sub edx, dword [esp]
lea esi, [edx + ecx]
add esi, 0x70
mov dword [esp + 0x58], esi
add edx, ecx
add edx, 0x10
mov dword [esp + 0x70], edx
mov esi, dword [esp]
sub eax, esi
lea edx, [ecx + eax]
add edx, 0x30
mov dword [esp + 0x54], edx
add eax, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x5c], edi
shl edi, 5
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x2c]
sub edx, esi
lea eax, [edx + ecx]
add eax, 0x70
mov dword [esp + 0x6c], eax
lea eax, [ecx + edx + 0x10]
mov dword [esp + 0x78], eax
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 0x30]
mov dword [esp + 0x90], eax
mov edi, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x50]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x54]
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], ebp
lea eax, [ecx + ebp]
mov esi, dword [esp]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], ecx
lea eax, [ecx + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp], esi
cmp edx, 0xe
ja 0x44ed7a
movzx eax, byte [ebx]
mov ecx, edx
shl eax, cl
add eax, edi
movzx edi, byte [ebx + 1]
add cl, 8
shl edi, cl
add ebx, 2
add edi, eax
add edx, 0x10
mov ebp, edx
mov ecx, edi
and ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x2c]
lea edx, [esi + ecx*4]
movzx eax, byte [esi + ecx*4]
movzx ecx, byte [esi + ecx*4 + 1]
sub ebp, ecx
shr edi, cl
test al, al
je 0x44eddb
nop dword [eax]
movzx eax, al
test al, 0x10
jne 0x44ee00
test al, 0x40
jne 0x44f84c
movzx edx, word [edx + 2]
mov esi, 0xffffffff
mov ecx, eax
shl esi, cl
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edx*4]
not esi
and esi, edi
lea edx, [ecx + esi*4]
movzx eax, byte [ecx + esi*4]
movzx ecx, byte [ecx + esi*4 + 1]
sub ebp, ecx
shr edi, cl
test al, al
jne 0x44eda0
movzx eax, byte [edx + 2]
mov esi, dword [esp]
mov byte [esi], al
inc esi
mov edx, ebp
cmp ebx, dword [esp + 0x3c]
jae 0x44f884
cmp esi, dword [esp + 0x38]
jb 0x44ed58
jmp 0x44f884
movzx esi, word [edx + 2]
test al, 0xf
je 0x44ee31
and eax, 0xf
cmp ebp, eax
jae 0x44ee1e
mov ecx, ebp
movzx edx, byte [ebx]
shl edx, cl
inc ebx
add edi, edx
add ecx, 8
mov ebp, ecx
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
not edx
and edx, edi
add esi, edx
shr edi, cl
sub ebp, eax
mov edx, ebp
cmp ebp, 0xe
mov dword [esp + 8], esi
ja 0x44ee5c
movzx eax, byte [ebx]
mov ecx, edx
shl eax, cl
add eax, edi
movzx edi, byte [ebx + 1]
add cl, 8
shl edi, cl
add ebx, 2
mov dword [esp + 0x14], ebx
add edi, eax
add edx, 0x10
jmp 0x44ee60
mov dword [esp + 0x14], ebx
mov eax, edi
and eax, dword [esp + 0x98]
mov esi, dword [esp + 0x40]
lea ebp, [esi + eax*4]
movzx ecx, byte [esi + eax*4 + 1]
sub edx, ecx
shr edi, cl
mov ebx, edx
movzx edx, byte [esi + eax*4]
movzx ecx, dl
mov esi, edi
mov eax, ebx
test cl, 0x10
jne 0x44eec7
nop dword [eax + eax]
test cl, 0x40
jne 0x44f85c
movzx edx, word [ebp + 2]
mov edi, dword [esp + 0x40]
lea edi, [edi + edx*4]
mov ebx, 0xffffffff
shl ebx, cl
not ebx
and ebx, esi
movzx ecx, byte [edi + ebx*4 + 1]
shr esi, cl
movzx edx, byte [edi + ebx*4]
lea ebp, [edi + ebx*4]
sub eax, ecx
movzx ecx, dl
test cl, 0x10
je 0x44ee90
and dl, 0xf
movzx ebx, dl
cmp eax, ebx
jae 0x44ef07
mov ecx, dword [esp + 0x14]
movzx edi, byte [ecx]
mov ecx, eax
shl edi, cl
add edi, esi
lea edx, [eax + 8]
cmp edx, ebx
jae 0x44ef0d
mov esi, dword [esp + 0x14]
movzx ecx, byte [esi + 1]
mov dword [esp + 4], ecx
mov ecx, edx
mov edx, dword [esp + 4]
shl edx, cl
add esi, 2
mov dword [esp + 0x14], esi
add edi, edx
add eax, 0x10
jmp 0x44ef09
mov edi, esi
mov edx, eax
jmp 0x44ef11
inc dword [esp + 0x14]
movzx esi, word [ebp + 2]
mov eax, 0xffffffff
mov ecx, ebx
shl eax, cl
not eax
and eax, edi
mov dword [esp + 0x18], esi
add esi, eax
shr edi, cl
sub edx, ebx
mov ebp, dword [esp]
mov ecx, ebp
sub ecx, dword [esp + 0x94]
mov ebx, esi
sub ebx, ecx
jbe 0x44efc2
mov dword [esp + 4], ebx
cmp ebx, dword [esp + 0x90]
mov ebx, dword [esp + 0x14]
jbe 0x44ef64
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x2344], 0
jne 0x44f8d7
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x44f058
mov ebp, ecx
mov ebx, dword [esp + 4]
sub ebp, ebx
jae 0x44f1e5
mov ebp, dword [esp + 0x88]
sub ebp, ebx
add ebp, dword [esp + 0x24]
sub ebx, ecx
mov ecx, dword [esp + 8]
sub ecx, ebx
jbe 0x44f321
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
cmp ebx, 0x10
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 4], ebx
jae 0x44f337
mov eax, dword [esp]
jmp 0x44f600
mov dword [esp + 0x10], edx
mov ecx, ebp
sub ecx, esi
neg esi
add ecx, 2
xor eax, eax
mov edx, dword [esp + 8]
nop word cs:[eax + eax]
movzx ebx, byte [ecx + eax - 2]
mov byte [ebp + eax], bl
movzx ebx, byte [ecx + eax - 1]
mov byte [ebp + eax + 1], bl
movzx ebx, byte [ecx + eax]
mov byte [ebp + eax + 2], bl
add edx, 0xfffffffd
add eax, 3
cmp edx, 2
ja 0x44efe0
mov ecx, eax
mov edx, dword [esp + 8]
sub ecx, edx
je 0x44f04b
neg edx
lea ecx, [eax + edx]
inc ecx
lea edx, [esi + ebp]
add edx, 2
movzx edx, byte [edx + eax - 2]
mov byte [ebp + eax], dl
test ecx, ecx
mov ebx, dword [esp + 0x14]
je 0x44f32a
lea ecx, [eax + ebp]
movzx ecx, byte [esi + ecx + 1]
mov byte [ebp + eax + 1], cl
lea esi, [eax + ebp]
add esi, 2
mov edx, dword [esp + 0x10]
jmp 0x44ede7
add ebp, eax
mov esi, ebp
mov edx, dword [esp + 0x10]
jmp 0x44f5ea
mov ebp, dword [esp + 0x8c]
mov ecx, dword [esp + 4]
sub ebp, ecx
add ebp, dword [esp + 0x24]
mov ebx, dword [esp + 8]
sub ebx, ecx
jbe 0x44f321
cmp ecx, 0x20
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], ebx
jb 0x44f1a5
mov ecx, dword [esp + 0x84]
mov esi, dword [esp]
add ecx, esi
mov edx, dword [esp + 0x34]
add edx, eax
add edx, dword [esp + 0x18]
sub edx, ecx
add edx, esi
cmp edx, 0x20
jb 0x44f1a5
mov ecx, dword [esp + 4]
add ecx, 0xffffffe0
mov esi, ecx
shr esi, 5
inc esi
mov edx, esi
and edx, 3
mov dword [esp + 8], edx
xor edx, edx
cmp ecx, 0x60
mov ebx, dword [esp]
jb 0x44f136
and esi, 0xfffffffc
mov ecx, ebx
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x6c]
xor edx, edx
nop
movups xmm0, xmmword [ecx + edx - 0x70]
movups xmm1, xmmword [ecx + edx - 0x60]
movups xmmword [ebx + edx], xmm0
movups xmmword [ebx + edx + 0x10], xmm1
movups xmm0, xmmword [ecx + edx - 0x50]
movups xmm1, xmmword [ecx + edx - 0x40]
movups xmmword [ebx + edx + 0x20], xmm0
movups xmmword [ebx + edx + 0x30], xmm1
movups xmm0, xmmword [ecx + edx - 0x30]
movups xmm1, xmmword [ecx + edx - 0x20]
movups xmmword [ebx + edx + 0x40], xmm0
movups xmmword [ebx + edx + 0x50], xmm1
movups xmm0, xmmword [ecx + edx - 0x10]
movups xmm1, xmmword [ecx + edx]
movups xmmword [ebx + edx + 0x60], xmm0
movups xmmword [ebx + edx + 0x70], xmm1
sub edx, 0xffffff80
add esi, 0xfffffffc
jne 0x44f0e0
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, 0xffffffe0
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 8]
test esi, esi
je 0x44f189
mov ebx, dword [esp]
lea ecx, [edx + ebx]
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x78]
lea eax, [edx + ebx]
add eax, 0x10
mov ebx, dword [esp + 4]
shl esi, 5
xor edx, edx
nop word [eax + eax]
movups xmm0, xmmword [ecx + edx - 0x10]
movups xmm1, xmmword [ecx + edx]
movups xmmword [eax + edx - 0x10], xmm0
movups xmmword [eax + edx], xmm1
add edx, 0x20
cmp esi, edx
jne 0x44f170
mov eax, dword [esp + 0x30]
add dword [esp], eax
cmp ebx, eax
je 0x44f318
and ebx, 0x1f
mov dword [esp + 4], ebx
add ebp, eax
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
lea esi, [edx - 1]
and edx, 7
je 0x44f35a
xor ecx, ecx
mov ebx, dword [esp]
nop word [eax + eax]
movzx eax, byte [ebp + ecx]
mov byte [ebx + ecx], al
inc ecx
cmp edx, ecx
jne 0x44f1c0
add ebx, ecx
mov dword [esp], ebx
sub dword [esp + 4], ecx
add ebp, ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
jmp 0x44f35e
add ebp, dword [esp + 0x24]
mov ecx, dword [esp + 8]
sub ecx, ebx
jbe 0x44f321
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
jb 0x44f489
mov ecx, dword [esp + 0x80]
mov esi, dword [esp]
add ecx, esi
mov edx, dword [esp + 0x34]
add edx, eax
add edx, dword [esp + 0x18]
sub edx, ecx
add edx, esi
cmp edx, 0x20
jb 0x44f489
mov ecx, dword [esp + 4]
add ecx, 0xffffffe0
mov esi, ecx
shr esi, 5
inc esi
mov edx, esi
and edx, 3
mov dword [esp + 8], edx
xor edx, edx
cmp ecx, 0x60
mov ebx, dword [esp]
jb 0x44f2b4
and esi, 0xfffffffc
mov ecx, ebx
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x58]
xor edx, edx
movups xmm0, xmmword [ecx + edx - 0x70]
movups xmm1, xmmword [ecx + edx - 0x60]
movups xmmword [ebx + edx], xmm0
movups xmmword [ebx + edx + 0x10], xmm1
movups xmm0, xmmword [ecx + edx - 0x50]
movups xmm1, xmmword [ecx + edx - 0x40]
movups xmmword [ebx + edx + 0x20], xmm0
movups xmmword [ebx + edx + 0x30], xmm1
movups xmm0, xmmword [ecx + edx - 0x30]
movups xmm1, xmmword [ecx + edx - 0x20]
movups xmmword [ebx + edx + 0x40], xmm0
movups xmmword [ebx + edx + 0x50], xmm1
movups xmm0, xmmword [ecx + edx - 0x10]
movups xmm1, xmmword [ecx + edx]
movups xmmword [ebx + edx + 0x60], xmm0
movups xmmword [ebx + edx + 0x70], xmm1
sub edx, 0xffffff80
add esi, 0xfffffffc
jne 0x44f25e
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, 0xffffffe0
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 8]
test esi, esi
je 0x44f309
mov ebx, dword [esp]
lea ecx, [edx + ebx]
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x70]
lea eax, [edx + ebx]
add eax, 0x10
mov ebx, dword [esp + 4]
shl esi, 5
xor edx, edx
nop dword [eax + eax]
movups xmm0, xmmword [ecx + edx - 0x10]
movups xmm1, xmmword [ecx + edx]
movups xmmword [eax + edx - 0x10], xmm0
movups xmmword [eax + edx], xmm1
add edx, 0x20
cmp esi, edx
jne 0x44f2f0
mov eax, dword [esp + 0x30]
add dword [esp], eax
cmp ebx, eax
jne 0x44f480
mov edx, dword [esp + 0x10]
jmp 0x44f533
mov ebx, dword [esp + 8]
jmp 0x44f53e
lea esi, [eax + ebp]
inc esi
mov edx, dword [esp + 0x10]
jmp 0x44ede7
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp]
add ecx, ebx
mov edx, dword [esp + 0x34]
add edx, eax
add edx, dword [esp + 0x18]
sub edx, ecx
add edx, ebx
cmp edx, 0x10
jae 0x44f3c3
mov eax, ebx
jmp 0x44f600
mov edx, dword [esp + 0x10]
cmp esi, 7
jb 0x44f537
xor eax, eax
mov esi, dword [esp]
mov ebx, dword [esp + 4]
movzx ecx, byte [ebp + eax]
mov byte [esi + eax], cl
movzx ecx, byte [ebp + eax + 1]
mov byte [esi + eax + 1], cl
movzx ecx, byte [ebp + eax + 2]
mov byte [esi + eax + 2], cl
movzx ecx, byte [ebp + eax + 3]
mov byte [esi + eax + 3], cl
movzx ecx, byte [ebp + eax + 4]
mov byte [esi + eax + 4], cl
movzx ecx, byte [ebp + eax + 5]
mov byte [esi + eax + 5], cl
movzx ecx, byte [ebp + eax + 6]
mov byte [esi + eax + 6], cl
movzx ecx, byte [ebp + eax + 7]
mov byte [esi + eax + 7], cl
add eax, 8
cmp ebx, eax
jne 0x44f370
jmp 0x44f52e
mov ecx, dword [esp + 4]
add ecx, 0xfffffff0
mov esi, ecx
shr esi, 4
inc esi
mov edx, esi
and edx, 3
mov dword [esp + 8], edx
xor edx, edx
cmp ecx, 0x30
jb 0x44f41f
and esi, 0xfffffffc
mov ecx, ebx
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x54]
xor edx, edx
movups xmm0, xmmword [ecx + edx - 0x30]
movups xmmword [ebx + edx], xmm0
movups xmm0, xmmword [ecx + edx - 0x20]
movups xmmword [ebx + edx + 0x10], xmm0
movups xmm0, xmmword [ecx + edx - 0x10]
movups xmmword [ebx + edx + 0x20], xmm0
movups xmm0, xmmword [ecx + edx]
movups xmmword [ebx + edx + 0x30], xmm0
add edx, 0x40
add esi, 0xfffffffc
jne 0x44f3f1
mov ebx, dword [esp + 4]
and ebx, 0xfffffff0
mov esi, dword [esp + 8]
test esi, esi
je 0x44f45f
add edx, dword [esp]
mov ecx, edx
sub ecx, eax
sub ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x74]
shl esi, 4
xor eax, eax
nop word cs:[eax + eax]
movups xmm0, xmmword [ecx + eax]
movups xmmword [edx + eax], xmm0
add eax, 0x10
cmp esi, eax
jne 0x44f450
mov eax, dword [esp]
add eax, ebx
mov esi, dword [esp + 4]
cmp esi, ebx
mov edx, ebx
mov ebx, dword [esp + 0xc]
jne 0x44f5f3
dec edx
mov ecx, dword [esp + 0x20]
jmp 0x44f69b
and ebx, 0x1f
mov dword [esp + 4], ebx
add ebp, eax
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 4]
lea esi, [edx - 1]
and edx, 7
je 0x44f4c2
xor ecx, ecx
mov ebx, dword [esp]
nop
movzx eax, byte [ebp + ecx]
mov byte [ebx + ecx], al
inc ecx
cmp edx, ecx
jne 0x44f4a0
add ebx, ecx
mov dword [esp], ebx
sub dword [esp + 4], ecx
add ebp, ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
jmp 0x44f4c6
mov edx, dword [esp + 0x10]
cmp esi, 7
jb 0x44f537
xor eax, eax
mov esi, dword [esp]
mov ebx, dword [esp + 4]
nop word cs:[eax + eax]
movzx ecx, byte [ebp + eax]
mov byte [esi + eax], cl
movzx ecx, byte [ebp + eax + 1]
mov byte [esi + eax + 1], cl
movzx ecx, byte [ebp + eax + 2]
mov byte [esi + eax + 2], cl
movzx ecx, byte [ebp + eax + 3]
mov byte [esi + eax + 3], cl
movzx ecx, byte [ebp + eax + 4]
mov byte [esi + eax + 4], cl
movzx ecx, byte [ebp + eax + 5]
mov byte [esi + eax + 5], cl
movzx ecx, byte [ebp + eax + 6]
mov byte [esi + eax + 6], cl
movzx ecx, byte [ebp + eax + 7]
mov byte [esi + eax + 7], cl
add eax, 8
cmp ebx, eax
jne 0x44f4e0
add esi, eax
mov dword [esp], esi
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp]
sub ebp, dword [esp + 0x1c]
cmp ebx, 3
jb 0x44f5c9
mov esi, edx
lea ecx, [ebx - 3]
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
bt edx, 1
jb 0x44f57d
movzx eax, byte [ebp]
mov edx, dword [esp]
mov byte [edx], al
movzx eax, byte [ebp + 1]
mov byte [edx + 1], al
movzx eax, byte [ebp + 2]
add ebp, 3
mov byte [edx + 2], al
add edx, 3
mov dword [esp], edx
mov ebx, ecx
mov edx, esi
cmp ecx, 3
mov esi, dword [esp]
jb 0x44f5ce
mov ecx, ebx
nop dword [eax]
movzx eax, byte [ebp]
mov byte [esi], al
movzx eax, byte [ebp + 1]
mov byte [esi + 1], al
movzx eax, byte [ebp + 2]
mov byte [esi + 2], al
movzx eax, byte [ebp + 3]
mov byte [esi + 3], al
movzx eax, byte [ebp + 4]
mov byte [esi + 4], al
movzx eax, byte [ebp + 5]
add ebp, 6
mov byte [esi + 5], al
add esi, 6
add ecx, 0xfffffffa
cmp ecx, 2
ja 0x44f590
jmp 0x44f5ce
mov ecx, ebx
mov esi, dword [esp]
test ecx, ecx
je 0x44f5ea
movzx eax, byte [ebp]
mov byte [esi], al
cmp ecx, 1
jne 0x44f5e0
inc esi
jmp 0x44f5ea
movzx eax, byte [ebp + 1]
mov byte [esi + 1], al
add esi, 2
mov ebx, dword [esp + 0x14]
jmp 0x44ede7
and esi, 0xf
mov dword [esp + 4], esi
mov dword [esp + 8], edx
add ebp, edx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 4]
lea ebx, [esi - 1]
mov dword [esp + 0x18], ebx
and esi, 3
je 0x44f649
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, byte [ebp + ecx]
mov byte [eax + ecx], dl
inc ecx
cmp esi, ecx
jne 0x44f620
mov esi, dword [esp + 8]
lea edx, [esi + ecx]
dec edx
add esi, ecx
mov dword [esp + 8], esi
add eax, ecx
sub dword [esp + 4], ecx
add ebp, ecx
mov ecx, dword [esp + 0x20]
jmp 0x44f649
mov ebx, dword [esp + 0xc]
cmp dword [esp + 0x18], 3
jb 0x44f69b
xor ecx, ecx
mov ebx, dword [esp + 4]
nop word [eax + eax]
movzx edx, byte [ebp + ecx]
mov byte [eax + ecx], dl
movzx edx, byte [ebp + ecx + 1]
mov byte [eax + ecx + 1], dl
movzx edx, byte [ebp + ecx + 2]
mov byte [eax + ecx + 2], dl
movzx edx, byte [ebp + ecx + 3]
mov byte [eax + ecx + 3], dl
add ecx, 4
cmp ebx, ecx
jne 0x44f660
mov edx, dword [esp + 8]
add edx, ecx
dec edx
add eax, ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
mov ebp, ebx
sub ebp, ecx
jbe 0x44f6b3
mov dword [esp + 0xc], ebp
cmp ecx, 0x20
jae 0x44f6c3
mov edx, dword [esp + 0x24]
jmp 0x44f793
mov dword [esp], eax
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
jmp 0x44f53e
mov esi, dword [esp]
add esi, edx
mov ebp, dword [esp + 0x24]
sub esi, ebp
inc esi
cmp esi, 0x20
jae 0x44f6db
mov edx, ebp
jmp 0x44f793
xor ecx, ecx
cmp dword [esp + 0x68], 0x60
jb 0x44f741
xor ecx, ecx
mov edx, dword [esp + 0x44]
movups xmm0, xmmword [ebp + ecx]
movups xmm1, xmmword [ebp + ecx + 0x10]
movups xmmword [eax + ecx], xmm0
movups xmmword [eax + ecx + 0x10], xmm1
movups xmm0, xmmword [ebp + ecx + 0x20]
movups xmm1, xmmword [ebp + ecx + 0x30]
movups xmmword [eax + ecx + 0x20], xmm0
movups xmmword [eax + ecx + 0x30], xmm1
movups xmm0, xmmword [ebp + ecx + 0x40]
movups xmm1, xmmword [ebp + ecx + 0x50]
movups xmmword [eax + ecx + 0x40], xmm0
movups xmmword [eax + ecx + 0x50], xmm1
movups xmm0, xmmword [ebp + ecx + 0x60]
movups xmm1, xmmword [ebp + ecx + 0x70]
movups xmmword [eax + ecx + 0x60], xmm0
movups xmmword [eax + ecx + 0x70], xmm1
sub ecx, 0xffffff80
add edx, 0xfffffffc
jne 0x44f6ea
cmp dword [esp + 0x5c], 0
mov ebx, dword [esp + 0x50]
je 0x44f772
mov edx, dword [esp + 0x48]
add edx, ecx
add ecx, eax
add ecx, 0x10
xor esi, esi
movups xmm0, xmmword [edx + esi - 0x10]
movups xmm1, xmmword [edx + esi]
movups xmmword [ecx + esi - 0x10], xmm0
movups xmmword [ecx + esi], xmm1
add esi, 0x20
cmp ebx, esi
jne 0x44f759
mov ecx, dword [esp + 0x64]
add eax, ecx
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
mov dword [esp], eax
cmp dword [esp + 0x20], ecx
mov ecx, esi
mov esi, dword [esp + 0x1c]
je 0x44f83a
lea ebx, [ecx - 1]
mov esi, ecx
and esi, 7
je 0x44f7d1
mov dword [esp + 8], ebx
mov ebx, ecx
xor ebp, ebp
nop word cs:[eax + eax]
movzx ecx, byte [edx + ebp]
mov byte [eax + ebp], cl
inc ebp
cmp esi, ebp
jne 0x44f7b0
add eax, ebp
mov ecx, ebx
sub ecx, ebp
add edx, ebp
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
jmp 0x44f7d9
mov esi, ecx
mov ecx, esi
mov esi, dword [esp + 0x1c]
cmp ebx, 7
jb 0x44f83a
xor esi, esi
mov ebx, ecx
movzx ecx, byte [edx + esi]
mov byte [eax + esi], cl
movzx ecx, byte [edx + esi + 1]
mov byte [eax + esi + 1], cl
movzx ecx, byte [edx + esi + 2]
mov byte [eax + esi + 2], cl
movzx ecx, byte [edx + esi + 3]
mov byte [eax + esi + 3], cl
movzx ecx, byte [edx + esi + 4]
mov byte [eax + esi + 4], cl
movzx ecx, byte [edx + esi + 5]
mov byte [eax + esi + 5], cl
movzx ecx, byte [edx + esi + 6]
mov byte [eax + esi + 6], cl
movzx ecx, byte [edx + esi + 7]
mov byte [eax + esi + 7], cl
mov ecx, ebx
add esi, 8
cmp ebx, esi
jne 0x44f7e0
add eax, esi
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp]
sub ebp, esi
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
jmp 0x44f53e
mov edx, 0x3f3f
mov ecx, str.invalid_literal_length_code
test al, 0x20
je 0x44f869
jmp 0x44f878
mov ecx, str.invalid_distance_code
mov edi, esi
mov ebp, eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xb4]
mov dword [eax + 0x18], ecx
mov edx, 0x3f51
mov eax, dword [esp + 0x28]
mov dword [eax + 4], edx
mov edx, ebp
mov esi, dword [esp]
mov eax, edx
shr eax, 3
sub ebx, eax
mov eax, dword [esp + 0xb4]
mov dword [eax], ebx
mov ecx, dword [esp + 0x3c]
sub ecx, ebx
mov dword [eax + 0xc], esi
add ecx, 5
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
sub ecx, esi
add ecx, 0x101
mov dword [eax + 0x10], ecx
and edx, 7
mov eax, 0xffffffff
mov ecx, edx
shl eax, cl
not eax
and eax, edi
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x40], edx
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, edx
mov ecx, str.invalid_distance_too_far_back
jmp 0x44f869