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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa0
mov esi, dword [esp + 0xb4]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], eax
lea ecx, [ecx + eax - 5]
mov dword [esp + 0x50], ecx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov ecx, edx
sub ecx, dword [esp + 0xb8]
add ecx, eax
mov edi, eax
mov dword [esp], eax
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0x1c]
mov cl, byte [eax + 0x58]
mov esi, 0xffffffff
shl esi, cl
mov dword [esp + 0x54], esi
mov cl, byte [eax + 0x5c]
mov ebx, 0xffffffff
shl ebx, cl
mov ebp, dword [eax + 0x34]
mov esi, eax
mov dword [esp + 0x30], eax
lea ecx, [edx + edi]
sub ecx, ebp
mov eax, dword [esp + 0xb8]
sub ecx, eax
mov dword [esp + 0x90], ecx
lea ecx, [eax + ebp]
sub ecx, edx
mov edi, dword [esi + 0x2c]
lea esi, [edi + ebp]
mov dword [esp + 0x48], edi
mov dword [esp + 0x94], esi
add esi, eax
sub esi, edx
add eax, edi
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp]
add edx, eax
add edx, 0xfffffeff
mov dword [esp + 0x4c], edx
mov edx, eax
not dword [esp + 0x54]
not ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x18], ebp
lea ebx, [ebp - 0x20]
mov dword [esp + 0x7c], ebx
shr ebx, 5
add ebx, 1
mov edi, ebp
and edi, 0xffffffe0
and ebp, 0x1f
mov dword [esp + 0x74], ebp
mov ebp, ebx
and ebp, 3
sub ecx, eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x38]
lea eax, [ecx + edx]
add eax, 0x70
mov dword [esp + 0x6c], eax
lea eax, [ecx + edx]
add eax, 0x10
mov dword [esp + 0x88], eax
sub esi, dword [esp]
lea eax, [esi + edx]
add eax, 0x70
mov dword [esp + 0x68], eax
lea eax, [esi + edx]
add eax, 0x10
mov dword [esp + 0x84], eax
and ebx, 0xfffffffc
neg ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x70], ebp
shl ebp, 5
mov dword [esp + 0x64], ebp
mov ecx, dword [esp + 8]
sub ecx, dword [esp]
lea eax, [ecx + edx]
add eax, 0x70
mov dword [esp + 0x80], eax
lea eax, [ecx + edx + 0x10]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x98], eax
mov esi, dword [ecx + 0x3c]
mov ebx, dword [ecx + 0x40]
mov ebp, dword [ecx + 0x50]
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
lea eax, [edx + eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x78], edi
lea eax, [edx + edi]
mov edi, dword [esp]
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], edx
lea eax, [edx + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp], edi
cmp ebx, 0xe
ja 0x4827ea
mov edx, dword [esp + 4]
movzx eax, byte [edx]
mov ecx, ebx
shl eax, cl
add eax, esi
movzx esi, byte [edx + 1]
add cl, 8
shl esi, cl
add edx, 2
mov dword [esp + 4], edx
add esi, eax
add ebx, 0x10
mov eax, esi
and eax, dword [esp + 0x54]
movzx ecx, byte [ebp + eax*4 + 1]
shr esi, cl
movzx edx, word [ebp + eax*4 + 2]
mov al, byte [ebp + eax*4]
sub ebx, ecx
test al, al
je 0x482840
movzx eax, al
test al, 0x10
jne 0x482870
test al, 0x40
jne 0x483317
mov edi, 0xffffffff
mov ecx, eax
shl edi, cl
movzx eax, dx
not edi
and edi, esi
add edi, eax
movzx ecx, byte [ebp + edi*4 + 1]
shr esi, cl
movzx edx, word [ebp + edi*4 + 2]
movzx eax, byte [ebp + edi*4]
jmp 0x482800
mov eax, dword [esp]
mov byte [eax], dl
mov edi, eax
add edi, 1
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x50]
jae 0x483349
cmp edi, dword [esp + 0x4c]
jb 0x4827c0
jmp 0x483349
movzx edi, dx
and eax, 0xf
je 0x4828ae
cmp ebx, eax
jae 0x48289b
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
movzx edx, byte [edi]
mov ecx, ebx
shl edx, cl
add edi, 1
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
add esi, edx
add ebx, 8
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
not edx
and edx, esi
add edi, edx
shr esi, cl
sub ebx, eax
cmp ebx, 0xe
mov dword [esp + 0x10], ebp
mov dword [esp + 8], edi
ja 0x4828e1
mov edi, dword [esp + 4]
movzx eax, byte [edi]
mov edx, ebx
mov ecx, edx
shl eax, cl
add eax, esi
movzx esi, byte [edi + 1]
add cl, 8
shl esi, cl
add edi, 2
mov dword [esp + 4], edi
add esi, eax
add edx, 0x10
jmp 0x4828e3
mov edx, ebx
mov ebx, dword [esp + 0x44]
mov eax, esi
and eax, dword [esp + 0x9c]
movzx ebp, word [ebx + eax*4 + 2]
movzx ecx, byte [ebx + eax*4 + 1]
movzx eax, byte [ebx + eax*4]
sub edx, ecx
shr esi, cl
mov edi, esi
test al, 0x10
jne 0x482940
nop dword [eax + eax]
test al, 0x40
jne 0x483327
mov esi, 0xffffffff
mov ecx, eax
shl esi, cl
movzx eax, bp
not esi
and esi, edi
add esi, eax
movzx ecx, byte [ebx + esi*4 + 1]
shr edi, cl
movzx ebp, word [ebx + esi*4 + 2]
movzx eax, byte [ebx + esi*4]
sub edx, ecx
test al, 0x10
je 0x482910
and eax, 0xf
cmp edx, eax
jae 0x48296f
mov ebx, dword [esp + 4]
movzx esi, byte [ebx]
mov ecx, edx
shl esi, cl
add esi, edi
lea ecx, [edx + 8]
cmp ecx, eax
jae 0x482979
movzx edi, byte [ebx + 1]
shl edi, cl
add ebx, 2
mov dword [esp + 4], ebx
add esi, edi
add edx, 0x10
jmp 0x482971
mov esi, edi
mov ebx, edx
mov edx, dword [esp + 0x18]
jmp 0x482986
add ebx, 1
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x18]
mov ebx, ecx
movzx edi, bp
mov ebp, 0xffffffff
mov ecx, eax
shl ebp, cl
not ebp
and ebp, esi
shr esi, cl
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebp
add ebp, edi
sub ebx, eax
mov edi, dword [esp]
mov eax, edi
sub eax, dword [esp + 0x38]
mov ecx, ebp
sub ecx, eax
mov dword [esp + 0x28], ebx
jbe 0x482a1d
mov dword [esp + 0x1c], ebp
mov edi, ecx
cmp ecx, dword [esp + 0x98]
jbe 0x4829d7
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x1bc4], 0
jne 0x4833a1
test edx, edx
je 0x482a89
mov ecx, edx
mov ebx, edi
sub ecx, edi
jae 0x482ab0
mov ecx, dword [esp + 0x94]
sub ecx, ebx
add ecx, dword [esp + 0x14]
sub ebx, edx
mov edx, dword [esp + 8]
mov eax, edx
sub eax, ebx
jbe 0x482ad5
mov dword [esp + 0x2c], eax
cmp ebx, 0x20
jae 0x482b21
mov edx, dword [esp]
jmp 0x482f24
mov ecx, edi
sub ecx, ebp
neg ebp
add ecx, 2
xor eax, eax
mov edx, dword [esp + 8]
nop dword [eax]
movzx ebx, byte [ecx + eax - 2]
mov byte [edi + eax], bl
movzx ebx, byte [ecx + eax - 1]
mov byte [edi + eax + 1], bl
movzx ebx, byte [ecx + eax]
mov byte [edi + eax + 2], bl
add edx, 0xfffffffd
add eax, 3
cmp edx, 2
ja 0x482a30
mov ecx, eax
sub ecx, dword [esp + 8]
je 0x482a82
mov edi, dword [esp]
lea edx, [edi + ebp]
add edx, 2
mov dl, byte [edx + eax - 2]
mov byte [edi + eax], dl
add ecx, 1
je 0x482ae5
add ebp, edi
mov cl, byte [eax + ebp + 1]
mov byte [edi + eax + 1], cl
add edi, eax
add edi, 2
jmp 0x482aea
mov edi, dword [esp]
add edi, eax
jmp 0x482aea
mov ecx, dword [esp + 0x48]
sub ecx, edi
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov edx, eax
sub edx, edi
jbe 0x482ad3
mov ebx, edi
cmp edi, 0x20
mov dword [esp + 0xc], edx
jae 0x482af7
mov ebp, dword [esp]
jmp 0x482d69
add ecx, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov edx, eax
sub edx, ebx
jbe 0x482ad3
cmp ebx, 0x20
mov dword [esp + 0xc], edx
jae 0x482c3b
mov ebp, dword [esp]
jmp 0x4830df
mov edx, eax
mov edi, dword [esp]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
jmp 0x48319d
add edi, eax
add edi, 1
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x10]
jmp 0x48284a
mov edx, dword [esp]
cmp edx, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
jae 0x482c65
mov eax, dword [esp + 0x38]
add eax, edx
sub edi, edx
add edi, eax
cmp ecx, edi
jae 0x482c65
mov ebp, edx
jmp 0x482d65
mov edx, dword [esp]
cmp edx, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
jae 0x482b43
mov eax, dword [esp + 0x90]
add eax, edx
sub edi, edx
add edi, eax
cmp ecx, edi
jb 0x482f24
mov dword [esp + 8], ebx
mov eax, ebx
and eax, 0xffffffe0
mov dword [esp + 0xc], eax
add eax, 0xffffffe0
mov edi, eax
shr edi, 5
add edi, 1
mov ebp, edi
and ebp, 3
mov dword [esp + 0x34], ebp
xor ebp, ebp
cmp eax, 0x60
jb 0x482bd6
mov eax, edx
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x68]
and edi, 0xfffffffc
neg edi
xor ebp, ebp
movups xmm0, xmmword [eax + ebp - 0x70]
movups xmm1, xmmword [eax + ebp - 0x60]
movups xmmword [edx + ebp], xmm0
movups xmmword [edx + ebp + 0x10], xmm1
movups xmm0, xmmword [eax + ebp - 0x50]
movups xmm1, xmmword [eax + ebp - 0x40]
movups xmmword [edx + ebp + 0x20], xmm0
movups xmmword [edx + ebp + 0x30], xmm1
movups xmm0, xmmword [eax + ebp - 0x30]
movups xmm1, xmmword [eax + ebp - 0x20]
movups xmmword [edx + ebp + 0x40], xmm0
movups xmmword [edx + ebp + 0x50], xmm1
movups xmm0, xmmword [eax + ebp - 0x10]
movups xmm1, xmmword [eax + ebp]
movups xmmword [edx + ebp + 0x60], xmm0
movups xmmword [edx + ebp + 0x70], xmm1
sub ebp, 0xffffff80
add edi, 4
jne 0x482b80
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x482c19
mov edx, dword [esp]
lea eax, [edx + ebp]
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x84]
add edx, ebp
add edx, 0x10
shl ebx, 5
xor edi, edi
nop dword [eax]
movups xmm0, xmmword [eax + edi - 0x10]
movups xmm1, xmmword [eax + edi]
movups xmmword [edx + edi - 0x10], xmm0
movups xmmword [edx + edi], xmm1
add edi, 0x20
cmp ebx, edi
jne 0x482c00
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
add edi, eax
mov ebx, dword [esp + 8]
cmp ebx, eax
jne 0x482f1d
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
jmp 0x482fd3
mov edx, dword [esp]
cmp edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
jae 0x482e22
mov eax, dword [esp + 0x38]
add eax, edx
sub edi, edx
add edi, eax
cmp ecx, edi
jae 0x482e22
mov ebp, edx
jmp 0x4830db
mov dword [esp + 8], ebx
mov eax, ebx
and eax, 0xffffffe0
mov dword [esp + 0x2c], eax
add eax, 0xffffffe0
mov edi, eax
shr edi, 5
add edi, 1
mov ebp, edi
and ebp, 3
mov dword [esp + 0x34], ebp
xor ebp, ebp
cmp eax, 0x60
jb 0x482d06
mov eax, edx
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x80]
and edi, 0xfffffffc
neg edi
xor ebp, ebp
nop word cs:[eax + eax]
nop
movups xmm0, xmmword [eax + ebp - 0x70]
movups xmm1, xmmword [eax + ebp - 0x60]
movups xmmword [edx + ebp], xmm0
movups xmmword [edx + ebp + 0x10], xmm1
movups xmm0, xmmword [eax + ebp - 0x50]
movups xmm1, xmmword [eax + ebp - 0x40]
movups xmmword [edx + ebp + 0x20], xmm0
movups xmmword [edx + ebp + 0x30], xmm1
movups xmm0, xmmword [eax + ebp - 0x30]
movups xmm1, xmmword [eax + ebp - 0x20]
movups xmmword [edx + ebp + 0x40], xmm0
movups xmmword [edx + ebp + 0x50], xmm1
movups xmm0, xmmword [eax + ebp - 0x10]
movups xmm1, xmmword [eax + ebp]
movups xmmword [edx + ebp + 0x60], xmm0
movups xmmword [edx + ebp + 0x70], xmm1
sub ebp, 0xffffff80
add edi, 4
jne 0x482cb0
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x482d49
mov edx, dword [esp]
lea eax, [edx + ebp]
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x8c]
add edx, ebp
add edx, 0x10
shl ebx, 5
xor edi, edi
nop dword [eax]
movups xmm0, xmmword [eax + edi - 0x10]
movups xmm1, xmmword [eax + edi]
movups xmmword [edx + edi - 0x10], xmm0
movups xmmword [edx + edi], xmm1
add edi, 0x20
cmp ebx, edi
jne 0x482d30
mov edi, dword [esp]
mov eax, dword [esp + 0x2c]
add edi, eax
mov ebx, dword [esp + 8]
cmp ebx, eax
je 0x482f0c
mov ebp, edi
and ebx, 0x1f
add ecx, eax
mov edx, dword [esp + 0xc]
lea edi, [ebx - 1]
mov dword [esp], edi
mov edi, ebx
and edi, 7
mov dword [esp + 8], ebx
je 0x482da3
xor edx, edx
nop dword [eax]
movzx eax, byte [ecx + edx]
mov byte [ebp + edx], al
add edx, 1
cmp edi, edx
jne 0x482d80
add ebp, edx
sub dword [esp + 8], edx
add ecx, edx
mov edi, ebp
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0xc]
jmp 0x482da9
mov edi, ebp
mov ebx, dword [esp + 4]
mov ebp, dword [esp]
cmp ebp, 7
mov ebp, dword [esp + 0x10]
jb 0x483197
mov dword [esp + 4], ebx
xor eax, eax
mov ebx, dword [esp + 8]
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [ecx + eax]
mov byte [edi + eax], dl
movzx edx, byte [ecx + eax + 1]
mov byte [edi + eax + 1], dl
movzx edx, byte [ecx + eax + 2]
mov byte [edi + eax + 2], dl
movzx edx, byte [ecx + eax + 3]
mov byte [edi + eax + 3], dl
movzx edx, byte [ecx + eax + 4]
mov byte [edi + eax + 4], dl
movzx edx, byte [ecx + eax + 5]
mov byte [edi + eax + 5], dl
movzx edx, byte [ecx + eax + 6]
mov byte [edi + eax + 6], dl
movzx edx, byte [ecx + eax + 7]
mov byte [edi + eax + 7], dl
add eax, 8
cmp ebx, eax
jne 0x482dd0
jmp 0x48318d
mov eax, ebx
and eax, 0xffffffe0
mov dword [esp + 0x2c], eax
add eax, 0xffffffe0
mov edi, eax
shr edi, 5
add edi, 1
mov ebp, edi
and ebp, 3
mov dword [esp + 8], ebp
xor ebp, ebp
cmp eax, 0x60
jb 0x482eb1
mov eax, edx
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x6c]
and edi, 0xfffffffc
neg edi
xor ebp, ebp
movups xmm0, xmmword [eax + ebp - 0x70]
movups xmm1, xmmword [eax + ebp - 0x60]
movups xmmword [edx + ebp], xmm0
movups xmmword [edx + ebp + 0x10], xmm1
movups xmm0, xmmword [eax + ebp - 0x50]
movups xmm1, xmmword [eax + ebp - 0x40]
movups xmmword [edx + ebp + 0x20], xmm0
movups xmmword [edx + ebp + 0x30], xmm1
movups xmm0, xmmword [eax + ebp - 0x30]
movups xmm1, xmmword [eax + ebp - 0x20]
movups xmmword [edx + ebp + 0x40], xmm0
movups xmmword [edx + ebp + 0x50], xmm1
movups xmm0, xmmword [eax + ebp - 0x10]
movups xmm1, xmmword [eax + ebp]
movups xmmword [edx + ebp + 0x60], xmm0
movups xmmword [edx + ebp + 0x70], xmm1
sub ebp, 0xffffff80
add edi, 4
jne 0x482e5b
cmp dword [esp + 8], 0
je 0x482efb
mov edx, dword [esp]
lea eax, [edx + ebp]
sub eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, dword [esp + 0x88]
add edx, ebp
add edx, 0x10
shl dword [esp + 8], 5
xor edi, edi
nop dword [eax]
movups xmm0, xmmword [eax + edi - 0x10]
movups xmm1, xmmword [eax + edi]
movups xmmword [edx + edi - 0x10], xmm0
movups xmmword [edx + edi], xmm1
add edi, 0x20
cmp dword [esp + 8], edi
jne 0x482ee0
mov edi, dword [esp]
mov eax, dword [esp + 0x2c]
add edi, eax
cmp ebx, eax
jne 0x4830d4
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jmp 0x483197
mov edx, edi
and ebx, 0x1f
add ecx, eax
lea ebp, [ebx - 1]
mov edi, ebx
and edi, 7
mov dword [esp + 8], ebx
je 0x482f5a
mov ebx, edx
xor edx, edx
nop word cs:[eax + eax]
movzx eax, byte [ecx + edx]
mov byte [ebx + edx], al
add edx, 1
cmp edi, edx
jne 0x482f40
add ebx, edx
sub dword [esp + 8], edx
add ecx, edx
mov edi, ebx
jmp 0x482f5c
mov edi, edx
mov ebx, dword [esp + 4]
cmp ebp, 7
mov ebp, dword [esp + 0x10]
jb 0x482fd3
mov dword [esp + 4], ebx
xor eax, eax
mov ebx, dword [esp + 8]
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [ecx + eax]
mov byte [edi + eax], dl
movzx edx, byte [ecx + eax + 1]
mov byte [edi + eax + 1], dl
movzx edx, byte [ecx + eax + 2]
mov byte [edi + eax + 2], dl
movzx edx, byte [ecx + eax + 3]
mov byte [edi + eax + 3], dl
movzx edx, byte [ecx + eax + 4]
mov byte [edi + eax + 4], dl
movzx edx, byte [ecx + eax + 5]
mov byte [edi + eax + 5], dl
movzx edx, byte [ecx + eax + 6]
mov byte [edi + eax + 6], dl
movzx edx, byte [ecx + eax + 7]
mov byte [edi + eax + 7], dl
add eax, 8
cmp ebx, eax
jne 0x482f80
add edi, eax
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
mov eax, dword [esp + 0x18]
sub edx, eax
jbe 0x483051
cmp eax, 0x20
mov dword [esp + 0xc], edx
jb 0x483008
cmp edi, dword [esp + 0x3c]
jae 0x48324c
mov eax, dword [esp + 0x18]
add eax, edi
cmp dword [esp + 0x14], eax
jae 0x48324c
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 4], ebx
mov ebp, dword [esp]
lea ebx, [ebp - 1]
mov dword [esp + 8], ebx
and ebp, 7
je 0x48305c
mov ebx, edi
xor edi, edi
nop word cs:[eax + eax]
movzx edx, byte [ecx + edi]
mov byte [ebx + edi], dl
add edi, 1
cmp ebp, edi
jne 0x483030
add ebx, edi
sub dword [esp], edi
add ecx, edi
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, ebx
jmp 0x483060
mov edx, ecx
mov ecx, dword [esp + 0x14]
jmp 0x48319d
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 4]
cmp dword [esp + 8], 7
jb 0x483197
xor edx, edx
mov ebx, dword [esp]
nop word cs:[eax + eax]
nop
movzx eax, byte [ecx + edx]
mov byte [edi + edx], al
movzx eax, byte [ecx + edx + 1]
mov byte [edi + edx + 1], al
movzx eax, byte [ecx + edx + 2]
mov byte [edi + edx + 2], al
movzx eax, byte [ecx + edx + 3]
mov byte [edi + edx + 3], al
movzx eax, byte [ecx + edx + 4]
mov byte [edi + edx + 4], al
movzx eax, byte [ecx + edx + 5]
mov byte [edi + edx + 5], al
movzx eax, byte [ecx + edx + 6]
mov byte [edi + edx + 6], al
movzx eax, byte [ecx + edx + 7]
mov byte [edi + edx + 7], al
add edx, 8
cmp ebx, edx
jne 0x483080
add edi, edx
jmp 0x48318f
mov ebp, edi
and ebx, 0x1f
add ecx, eax
mov edx, dword [esp + 0xc]
lea edi, [ebx - 1]
mov dword [esp], edi
mov edi, ebx
and edi, 7
mov dword [esp + 8], ebx
je 0x483123
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [ecx + edx]
mov byte [ebp + edx], al
add edx, 1
cmp edi, edx
jne 0x483100
add ebp, edx
sub dword [esp + 8], edx
add ecx, edx
mov edi, ebp
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0xc]
jmp 0x483129
mov edi, ebp
mov ebx, dword [esp + 4]
mov ebp, dword [esp]
cmp ebp, 7
mov ebp, dword [esp + 0x10]
jb 0x483197
mov dword [esp + 4], ebx
xor eax, eax
mov ebx, dword [esp + 8]
nop
movzx edx, byte [ecx + eax]
mov byte [edi + eax], dl
movzx edx, byte [ecx + eax + 1]
mov byte [edi + eax + 1], dl
movzx edx, byte [ecx + eax + 2]
mov byte [edi + eax + 2], dl
movzx edx, byte [ecx + eax + 3]
mov byte [edi + eax + 3], dl
movzx edx, byte [ecx + eax + 4]
mov byte [edi + eax + 4], dl
movzx edx, byte [ecx + eax + 5]
mov byte [edi + eax + 5], dl
movzx edx, byte [ecx + eax + 6]
mov byte [edi + eax + 6], dl
movzx edx, byte [ecx + eax + 7]
mov byte [edi + eax + 7], dl
add eax, 8
cmp ebx, eax
jne 0x483140
add edi, eax
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
mov ecx, edi
sub ecx, dword [esp + 0x1c]
cmp edx, 3
mov dword [esp + 4], ebx
jb 0x483226
lea ebx, [edx - 3]
mov eax, ebx
mov dword [esp + 0xc], edx
mov edx, 0xaaaaaaab
mul edx
bt edx, 1
jb 0x4831df
mov al, byte [ecx]
mov byte [edi], al
mov al, byte [ecx + 1]
mov byte [edi + 1], al
mov al, byte [ecx + 2]
add ecx, 3
mov byte [edi + 2], al
add edi, 3
mov edx, ebx
cmp ebx, 3
jae 0x4831f0
jmp 0x483228
mov edx, dword [esp + 0xc]
cmp ebx, 3
jb 0x483228
nop dword [eax + eax]
movzx eax, byte [ecx]
mov byte [edi], al
movzx eax, byte [ecx + 1]
mov byte [edi + 1], al
movzx eax, byte [ecx + 2]
mov byte [edi + 2], al
movzx eax, byte [ecx + 3]
mov byte [edi + 3], al
movzx eax, byte [ecx + 4]
mov byte [edi + 4], al
movzx eax, byte [ecx + 5]
add ecx, 6
mov byte [edi + 5], al
add edi, 6
add edx, 0xfffffffa
cmp edx, 2
ja 0x4831f0
mov ebx, edx
test ebx, ebx
je 0x483243
mov al, byte [ecx]
mov byte [edi], al
cmp ebx, 1
jne 0x48323a
add edi, 1
jmp 0x483243
mov al, byte [ecx + 1]
mov byte [edi + 1], al
add edi, 2
mov ebx, dword [esp + 0x28]
jmp 0x48284a
xor eax, eax
cmp dword [esp + 0x7c], 0x60
mov edx, edi
mov edi, dword [esp + 0x14]
jb 0x4832b7
xor eax, eax
mov ecx, dword [esp + 0x58]
movups xmm0, xmmword [edi + eax]
movups xmm1, xmmword [edi + eax + 0x10]
movups xmmword [edx + eax], xmm0
movups xmmword [edx + eax + 0x10], xmm1
movups xmm0, xmmword [edi + eax + 0x20]
movups xmm1, xmmword [edi + eax + 0x30]
movups xmmword [edx + eax + 0x20], xmm0
movups xmmword [edx + eax + 0x30], xmm1
movups xmm0, xmmword [edi + eax + 0x40]
movups xmm1, xmmword [edi + eax + 0x50]
movups xmmword [edx + eax + 0x40], xmm0
movups xmmword [edx + eax + 0x50], xmm1
movups xmm0, xmmword [edi + eax + 0x60]
movups xmm1, xmmword [edi + eax + 0x70]
movups xmmword [edx + eax + 0x60], xmm0
movups xmmword [edx + eax + 0x70], xmm1
sub eax, 0xffffff80
add ecx, 4
jne 0x483261
mov dword [esp], edx
cmp dword [esp + 0x70], 0
mov edi, dword [esp + 0x64]
je 0x4832ee
mov ecx, dword [esp + 0x5c]
add ecx, eax
mov edx, dword [esp]
add eax, edx
add eax, 0x10
xor edx, edx
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 edi, edx
jne 0x4832d5
mov edx, dword [esp]
mov eax, dword [esp + 0x78]
add edx, eax
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x18], eax
mov edi, edx
mov edx, dword [esp + 0xc]
jne 0x48300f
jmp 0x483197
mov edx, 0x3f3f
mov ecx, str.invalid_literal_length_code
test al, 0x20
je 0x483330
jmp 0x48333f
mov ecx, str.invalid_distance_code
mov esi, edi
mov ebx, edx
mov eax, dword [esp + 0xb4]
mov dword [eax + 0x18], ecx
mov edx, 0x3f51
mov eax, dword [esp + 0x30]
mov dword [eax + 4], edx
mov edi, dword [esp]
mov eax, ebx
shr eax, 3
mov ebp, edi
mov edi, dword [esp + 4]
sub edi, eax
mov edx, dword [esp + 0xb4]
mov dword [edx], edi
mov eax, dword [esp + 0x50]
sub eax, edi
mov dword [edx + 0xc], ebp
add eax, 5
mov dword [edx + 4], eax
mov eax, dword [esp + 0x4c]
sub eax, ebp
add eax, 0x101
mov dword [edx + 0x10], eax
and ebx, 7
mov eax, 0xffffffff
mov ecx, ebx
shl eax, cl
not eax
and eax, esi
mov edx, dword [esp + 0x30]
mov dword [edx + 0x3c], eax
mov dword [edx + 0x40], ebx
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.invalid_distance_too_far_back
jmp 0x483330